甘露模型,用prototype更好地去实现对象继承
2012-12-07 16:32
204 查看
在上一篇博文中,我们阐述了如何用prototype实现继承,这个继承用于函数继承函数,但在对象中可不可以实现对象继承对象呢?答案是肯定的。其中的原理也是效仿函数继承函数。
思维过程:
函数继承函数,我们要在子函数中的prototype对象,用父亲函数的实例化将其赋值。这样子函数的prototype才拥有父亲的prototype方法。所以我们就想,在对象中,我们可以借助一个中间的函数,把该函数的prototype用父类对象直接赋值,然后子类函数便拥有了父类对象的属性。最后,我们把这个中间函数的对象实例返回给子类对象。这样就完成了整个对象的继承。
具体实例如下:(不得不说,这是一个创举!!)
思维过程:
函数继承函数,我们要在子函数中的prototype对象,用父亲函数的实例化将其赋值。这样子函数的prototype才拥有父亲的prototype方法。所以我们就想,在对象中,我们可以借助一个中间的函数,把该函数的prototype用父类对象直接赋值,然后子类函数便拥有了父类对象的属性。最后,我们把这个中间函数的对象实例返回给子类对象。这样就完成了整个对象的继承。
具体实例如下:(不得不说,这是一个创举!!)
function New(superclass,args){ function _new(){ superclass.Create.apply(this,args) }; _new.prototype=superclass; return new _new(); } var father={ Create:function(name){ this._name=name; }, say:function(){ document.write("my name is "+this._name); } } var son=New(father,["son"]); son.say();
相关文章推荐
- 利用prototype属性自定义对象,实现对象继承等面向对象设计
- ios中 继承对象模型的归档实现
- 变量对象,作用域链,闭包,匿名函数,this关键字,原型链,构造器,js预编译,对象模型,执行模型,prototype继承
- 深入理解C++对象模型-成员函数的本质以及虚函数的实现(非虚继承)
- 基于“甘露模型”的多重继承和接口实现,附带“准”桥接模式的验证
- 实现javaScript对象的"继承"的两种方法(prototype与闭包)
- C++对象模型Data语意学分析、虚继承底层实现机制
- VS2005之virtual继承对象模型
- jQuery轮播图(二)利用构造函数和原型创建对象以实现继承
- 混合对象 "类" ---js实现继承的两种方式
- 理清javascript中prototype、__proto__、Object、Function的关系,更好地理解原型继承
- JAVA中创建线程对象的两种方法:继承Thread和实现Runable
- JavaScript对象继承的实现
- Microsoft Visual C++虚拟多继承 对象模型初步分析
- node.js面向对象实现(二)继承
- 《GOF设计模式》—原型(Prototype)—Delphi源码示例:基于类的原型管理器(使用TList和TObject对象服务实现)
- 继承机制的实现 对象冒充
- C++对象内存模型(高级)—多重继承与虚函数表(转)
- lua的简单对象实现以及简单继承
- lua面向对象类,继承和多重继承的实现