关于原型继承的三种方法

1.利用对象的动态特性添加成员


varo={};

o.name=‘jim’

varPerson=function(){};

Person.prototype.sayHello=function(){

alert(“xxxx")

}

//此时原型对象是对象,可以利用动态特性随时添加成员

//添加的成员都会被构造函数的对象所继承

2.利用覆盖原型对象


varPerson=function(){};

Person.prototype={

say:function(){},

said:function(){}

constructor:Person;//添加constructor

}

如果使用这种方法会覆盖掉原有的prototype方法(包括constructor)  指向为构造函数的constructor

一定要给新对象添加一个constructor属性

3.利用组合式继承添加属性

利用extend方法(在我之前的博客中有)

extend()


varPerson=function(){};

Person.prototype={

say:function(){},

said:function(){}

constructor:Person;//添加constructor

}

Person.extend=function( msg ){

for(varkinmsg){

Person.prototype[k]=msg[k]

}

}

原文参考入口三种方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容