正确的JavaScript继承
我已经阅读了很多有关javascript中“继承”的文章。其中一些使用,new
而另一些则建议Object.Create
。我读得越多,我就越困惑,因为它似乎存在着无穷无尽的变体来解决继承问题。
有人可以告诉我最可接受的方式吗(如果有的话,是事实上的标准)吗?
(我想要一个Model
可以扩展RestModel
或的基础对象LocalStorageModel
。)
回答:
简单:Object.create
并非在所有环境中均受支持,但可以填充new
。除此之外,两者具有不同的目的:Object.create
只需创建一个对象从其他继承,同时
还
调用构造函数。使用适当的东西。new
__
就您而言,您似乎希望RestModel.prototype
继承自Model.prototype
。Object.create
(或它的填充)是正确的方法,因为您不想a)创建一个新实例(实例化a
new Model
)并且b)不想调用Model构造函数:
RestModel.prototype = Object.create(Model.prototype);
如果要在RestModels上调用Model构造函数,则与原型无关。用于call()
或apply()
用于:
function RestModel() { Model.call(this); // apply Model's constructor on the new object
...
}
以上是 正确的JavaScript继承 的全部内容, 来源链接: utcz.com/qa/398069.html