乐趣区

关于javascript:寄生式继承

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

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

退出移动版