当前位置: 网学 > 网页素材 > AJAX代码 > 正文

AJAX技术生命中的达芬奇密码

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 09/05/30
问题、在互联网上没有找到符合要求的方法,我决定看看我自己是否可以发明一种可以满足要求的方法。这花掉了我近一周的时间来使代码工作并满足各种情况,但我对它的工作情况很有信心,并且很快把它与framework集成在一起,TinWire的beta和beta2两个版本中都使用了这些“初级设计”的代码。

  动态父类调用:

  一次性支持代码:

  //定义最顶级类function Class() { }Class.prototype.construct = function() {};Class.__asMethod__ = function(func, superClass) {        return function() {        var currentSuperClass = this.$;        this.$ = superClass;        var ret = func.apply(this, arguments);                this.$ = currentSuperClass;        return ret;    };};Class.extend = function(def) {    var classDef = function() {        if (arguments[0] !== Class) { this.construct.apply(this, arguments); }    };        var proto = new this(Class);    var superClass = this.prototype;        for (var n in def) {        var item = def[n];                                        if (item instanceof Function) {            item = Class.__asMethod__(item, superClass);        }                proto[n] = item;    }    proto.$ = superClass;    classDef.prototype = proto;        //赋给这个新的子类同样的静态extend方法    classDef.extend = this.extend;            return classDef;};  运行示例:

  //Hey, 注意一下这个类的定义方式//看上去比其它方式要清楚些var BaseClass = Class.extend({    construct: function() { /* optional constructor method */ },        getName: function() {        return "BaseClass(" + this.getId() + ")";    },        getId: function() {        return 1;    }});var SubClass = BaseClass.extend({    getName: function() {        //调用BaseClass的getName()方法        return "SubClass(" + this.getId() + ") extends " +            this.$.getName.call(this);    },        getId: function() {        return 2;    }});var TopClass = SubClass.extend({    getName: function() {        //调用SubClass的getName()方法        return "TopClass(" + this.getId() + ") extends " +            this.$.getName.call(this);    },        getId: function() {        //this.getId()总是返回调用父类的getId()方法的返回值(2)        return this.$.getId.call(this);    }});//输出结果:"TopClass(2) extends SubClass(2) extends BaseClass(2)"//一切都正确!alert(new TopClass().getName())

  • 上一篇资讯: Ajax-基本简介
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号