1、借助Object.create方法实现普通对象的继承(浅拷贝)
let parent4 = {
name: "parent4",
friends: ["p1", "p2", "p3"],
getName: function() {
return this.name;
}
};
let person4 = Object.create(parent4);
person4.name = "tom";
person4.friends.push("jerry");
let person5 = Object.create(parent4)
person5.name = 'james'
person5.friends.push('james')
console.log(parent4)
2、寄生组合式继承
function clone(p, c) {
c.prototype = Object.create(p.prototype)
c.prototype.constructor = c
}
function Parent6() {
this.name = 'parent6'
this.play = [1,2,3]
}
Parent6.prototype.getName = function() {
return this.name
}
function Child6() {
Parent6.call(this)
this.friends = 'child6';
}
clone(Parent6, Child6)
Child6.prototype.getF = function () {
return this.friends
}
let c6 = new Child6()
console.log(c6)
console.log(c6.getName()); // parent6
console.log(c6.getF()); // child5