与原型式继承比拟靠近的一种继承形式是寄生式继承。寄生式继承背地的思路相似于继承构造函数和工厂模式:创立一个实现继承的函数,以某种形式加强对象,而后返回这个对象。
1.根本的寄生继承模式如下:
function createAnother(original){ let clone=object(original); // 通过调用函数创立一个新对象 clone.sayHi=function(){ // 以某种形式加强这个对象 console.log("hi"); }; return clone; // 返回这个对象}
在这段代码中,createAnother()函数后果一个参数,就是新对象的基准对象。这个对象original会被传给 object()函数,而后将返回的新对象赋值给 clone。接着给 clone对象增加一个新办法 sayHi()。最初返回这个对象。
2.能够像上面这样应用 createAnother()函数:
let person={ name:"Nicholas", friends:["Shelby","Court","Van"]};let anotherPerson=createAnother(person);abotherPerson.sayHi(); // "hi"
这个例子基于person对象返回一个新对象。新返回的 anotherPerson 对象具备 person 的所有属性和办法,还有一个新办法叫 sayHi()。
3.寄生式继承同样适宜次要关注对象,而不在乎类型和构造函数的场景。object()函数不是寄生式继承所必须的,任何返回新对象的函数都能够在这里应用。
**留神**:通过寄生式继承给对象增加函数会导致函数难以重用,与构造函数模式相似。
4.本期的分享到了这里就完结啦,心愿对你有所帮忙,让咱们一起致力走向巅峰。