码迷,mamicode.com
首页 > 其他好文 > 详细

寄生组合式继承

时间:2014-12-04 13:36:18      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   sp   on   div   log   

//对象克隆

function object(o){

function F(){}

F.prototype = o;

return new F();

}

//原型继承

function inheritPrototype(subType,superType){

var prototype = object(superType.prototype);

prototype.constructor = subType;

subType.prototype = prototype;

}

 

function SuperType(name){

this.name = name;

this.colors = [1,2];

}

 

SuperType.prototype.sayName = function(){

alert(this.name);

}

 

function SubType(name,age){

//属性继承

SuperType.call(this,name);

    this.age = age;

}

 

inheritPrototype(SubType,SuperType); //原型继承

 

SubType.prototype.sayAge = function(){

alert(this.age);

}

 

 

继承的关键就是 子类的原型是超类的实例引用,所以此方式本质就是将超类的原型赋给一个空的colne对象实例的原型中,然后在将此clone实例赋给子类的原型。

在调用中会走一遍克隆的原型实例和原型而已。

避免了执行2次超类构造函数。

寄生组合式继承

标签:style   blog   io   ar   color   sp   on   div   log   

原文地址:http://www.cnblogs.com/lcw5945/p/4142492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!