与原型式继承比拟靠近的一种继承形式是寄生式继承。寄生式继承背地的思路相似于继承构造函数和工厂模式:创立一个实现继承的函数,以某种形式加强对象,而后返回这个对象。

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.本期的分享到了这里就完结啦,心愿对你有所帮忙,让咱们一起致力走向巅峰。