【发布时间】:2013-09-21 21:50:34
【问题描述】:
在一些构造函数的定义之后,例如Child,以下两种形式我都见过:
Child.prototype = Parent.prototype;
或
Child.prototype = new Parent();
都正确吗?如果是这样,是否有理由更喜欢其中一个?
【问题讨论】:
-
当今首选方式:
Child.prototype = Object.create(Parent.prototype) -
在第一个版本中,两个构造函数共享同一个原型。这意味着 Child 不能有自己的原型方法。如果您使用相同的方法创建 GrandChild 原型,它实际上会继承自 Parent。
-
结合elclanrs所说的,你有时也会在
Child的开头看到Parent.call(this);。
标签: javascript oop inheritance