我是JavaScript新手。我正在阅读第6章中专业Javascript for Web Developers 第3版中的“寄生组合继承”一节。介绍 ES6 并强烈推动远离“新”和深层次结构,是否有再使用寄生组合继承模式的目的?
今天用的是什么?我觉得我正在学习一堆无用的模式。我知道有些人现在只使用Object.create()
和Object.assign()
,所以为什么要提到这些继承模式?
答案 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*/ }
}
这些是今天使用最广泛的方法,坚持适合你。
希望这有帮助。