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

组合式继承

时间:2014-12-04 13:28:45      阅读:141      评论:0      收藏:0      [点我收藏+]

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

此方式即可满足函数的复用,也可满足子类实例有各自的属性,也可传递参数。

 

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;

}

 

//继承方法

SubType.prototype = new SuperType(); //继承原型

SubType.prototype.sayAge = function(){ //子类原型中共有方法

    alert(this.age);

}

 

var in1 = new SubType("Jack",12); //可以传递参数 

in1.colors.push(3); //访问超类的属性,而且有默认值哦

alert(in1.colors);

in1.sayName();

in1.sayAge();

 

var in2 = new SubType("Tom",30);

in2.colors.push(5); //访问超类属性,修改默认值不会影响其他的实例

alert(in2.colors);

 

此方式也有个缺点就是超类的构造函数要执行2次,超类的属性既存在子类实例中,也存在子类实例的原型中。

组合式继承

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

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

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