function SuperType(name) {
//父函数的自定义属性
this.name = name;
this.colors = ["red","orange","black"];
};
SuperType.prototype.sayName = function() {
//父函数原型中定义的方法
console.log(this.name);
};
//定义子函数
function SubType (name,age) {
//子函数继承父函数的属性
//借用构造函数实现对实例属性的继承
SuperType.call(this,name);
//子函数定义自己的属性
this.age = age;
}
//子函数继承父函数的方法
//通过原型链对原型属性和方法的继承
SubType.prototype = Object.create(SuperType.prototype);
//下面注释的这种写法子类会具有父类实例的方法,不推荐
//SubType.prototype = new SuperType();
SubType.prototype.constructor =SubType;
//自定义子函数的方法
SubType.prototype.sayAge = function() {
console.log(this.age);
}
//测试
var instance1 = new SubType("LLL","24");
instance1.colors.push("pink");
console.log(instance1.colors);//"red,orange,black,pink"
instance1.sayName;//"LLL"
instance1.sayAge;//"24"
//测试2
var instance2 = new SubType("XXX","25");
console.log(instance2.colors);//"red,orange,black"
instance2.sayName;//"XXX"
instance2.sayAge;//"25"
js之组合继承
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 原型链实现继承: 缺点: 1.重写子类的原型 等于 父类的一个实例,(父类的实例属相变成子类的原型属性)如果父类包...
- 一、原型链继承 将父类的实例作为子类的原型 优点: 父类方法可以复用 缺点: 父类的所有引用属性(info)会被所...