寄生组合继承真的被使用了吗?



我是JavaScript新手。我正在阅读面向Web开发人员的专业Javascript 第3版第6章中的"寄生组合继承"部分。随着ES6的引入以及对远离"新"和深层层次结构的强烈推动,还有使用寄生组合继承模式的目的吗?

现在用什么?我觉得我在学习一堆无用的模式。我知道现在人们只使用Object.create()Object.assign(),那么为什么还要提到这些继承模式呢?

我知道在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*/ }
}

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

最新更新