正确的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
