首页 > 代码库 > 组合式继承
组合式继承
此方式即可满足函数的复用,也可满足子类实例有各自的属性,也可传递参数。
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次,超类的属性既存在子类实例中,也存在子类实例的原型中。
组合式继承
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。