您的位置:首页 > Web前端 > JavaScript

甘露模型,用prototype更好地去实现对象继承

2012-12-07 16:32 204 查看
在上一篇博文中,我们阐述了如何用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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息