寄生组合遗传是否真的被使用了?

时间:2016-10-15 03:21:23

标签: javascript inheritance ecmascript-6

我是JavaScript新手。我正在阅读第6章中专业Javascript for Web Developers 第3版中的“寄生组合继承”一节。介绍 ES6 并强烈推动远离“新”和深层次结构,是否有再使用寄生组合继承模式的目的?

今天用的是什么?我觉得我正在学习一堆无用的模式。我知道有些人现在只使用Object.create()Object.assign(),所以为什么要提到这些继承模式?

1 个答案:

答案 0 :(得分:2)

最"权利"我知道在Javascript中做继承的方法是:

let SubClass = function() { SuperClass.call(this, arguments); /*Do other stuff here*/ }
SubClass.prototype = Object.create(SuperClass.prototype);

Object.create(o){__proto__: o}大致相同,将创建另一个以o为原型的对象。

然而,由于世界已经改变,我们现在已经在ES6领域,你宁愿使用ES6标准的继承方式:

class SubClass extends SuperClass {
    constructor() { super(...arguments); /*Do other stuff here*/ }
}

这些是今天使用最广泛的方法,坚持适合你。

希望这有帮助。