Class.create和 Object.extend继承操作
来源:互联网 发布:电视机选择 知乎 编辑:程序博客网 时间:2024/05/29 18:34
Prototype在1.6之前的实现一个继承的操作的时候都是采用Object.extend的方式。Object.extend的实现原理是先创建出父类的对象并将子类中的方法复制到这个对象中去,这样做可以比较轻松的实现一个子类到父类的upcasting。但是这样也会存在一个问题,就是子类无法在自己的构造函数中调用父类的构造函数,也就是说无法实现super这样的操作。
1.6以前的Object.extend的实现代码:
1.6的Prototype中改写了关于继承的实现,Class.create新增加了一种模式的调用,Class.create([BassClass], {});
Prototypejs.org提供的Class.create新的实例:
在这个实例中我们看到了$super这个新增加的函数,通过$super方法我们可以调用父类的方法。再来看一下最新的Prototype 1.6中的Class.create的实现:
可以看到最新的继承实现将父类暂存中superclass,这样在子类中通过$super调用父类的方法时,实际上调用的是this.superclass中的方法。
在开发Glove.Widget时候曾经就为没有super方法犯愁过,现在1.6有了新的继承模式Glove.Widget就不用像以前那样丑陋的实现super的功能了。明天开始考虑Glove.Widget基于Prototype1.6的重构。
- Class.create和 Object.extend继承操作
- 学习prototypejs中的继承实现机制(一): Object.extend()、Class.create()、Class#addMethods()的使用
- Class.create(),Object.extend()用法小结
- JQuery.extend深度讲解,浅谈Object.create
- 原型式继承-Object.create()
- jQuery.fn.extend(object);和jQuery.extend(object); 的理解
- JavaScript中的new操作符和Object.create()
- JS中的继承和Extend
- 谈谈 Object.create ,JS的原型继承
- 使用Object.create实现类式继承
- 用 Object.create实现类式继承
- js继承的实现---object.extend(d,s)方法
- js继承的实现---object.extend(d,s)方法
- Java Object和Class
- Object.create() 是什么?继承(继承特定的)
- Javascript的继承和Ext的Extend
- python的class是否继承object区别
- 原型继承和Class继承
- 二维字符数组与char** 关系
- 静态变量和静态函数
- 服务器SQL上的MSDTC不可用解决办法
- java集合操作-----求两个集合的交集和并集
- 对Java日期类型的相关操作总结
- Class.create和 Object.extend继承操作
- ajaxpro返回值类型总结-DataSet
- 并发和竞态(理论篇)
- 剖析ADSL速度之谜
- Eclipse + MinGW + Qt开发环境设置
- linux之cp/scp命令
- 关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
- Delphi QuotedStr函数的原型
- C++实现回文