function XiMenQing() {
this.name = '西门庆';
this.age = 34;
this.wifes = ['潘金莲', '吴月娘', '李瓶儿'];
}
XiMenQing.prototype.details = function() {
return '生子当如西门庆';
}
function WuDaLang() {
XiMenQing.call(this);
}
var wuda = new WuDaLang();
console.log(wuda.wifes);
//console.log(wuda.details()); 此时XiMenQing和WuDaLang之间还没有建立起父子继承关系。
//指定继承关系 继承父类原型中的属性
WuDaLang.prototype = new XiMenQing();
var wuda = new WuDaLang();
console.log(wuda.details());
/**
* 理解借用构造函数的目的仅仅只是对实例属性的继承
*/
wuda.wifes.push('苏小小');
console.log(wuda.wifes);
var wusong = new WuDaLang();
console.log(wusong.wifes);
/**
* [ '潘金莲', '吴月娘', '李瓶儿', '苏小小' ]
* [ '潘金莲', '吴月娘', '李瓶儿' ]
*/
使用借用构造函数实现对父对象实例属性的继承
使用原型继承实现对父对象原型属性的继承
JavaScript中最常用的继承模式 结合原型模式和借用构造函数模式的有点于一体
最新推荐文章于 2022-02-18 17:02:34 发布