当前位置: 首页 > 面试题库 >

正确的JavaScript继承

隗锐进
2023-03-14
问题内容

我已经阅读了很多有关javascript中“继承”的文章。其中一些使用,new而另一些则建议Object.Create。我读得越多,我就越困惑,因为它似乎存在着无穷无尽的变体来解决继承问题。

有人可以告诉我最可接受的方式吗(如果有的话,是事实上的标准)吗?

(我想要一个Model可以扩展RestModel或的基础对象LocalStorageModel。)


问题答案:

简单:Object.create并非在所有环境中均受支持,但可以填充new。除此之外,两者具有不同的目的:Object.create只需创建一个对象从其他继承,同时

调用构造函数。使用适当的东西。new
__


就您而言,您似乎希望RestModel.prototype继承自Model.prototypeObject.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
    ...
}


 类似资料:
  • 问题内容: 因此,我拥有这些文本字段,我意识到它们都具有相同的属性,因此我创建了一个名为“ UserInputs ”的新类,并从进行了扩展,除一件事外,其他所有内容均正常运行,功能不起作用,我的意思是当我专注于它们时不起作用,我想在代码中添加它,因为当您专注于我的输入字段时,它们会更改边框,我该如何正确地从 我唯一的问题是该功能: 因此不起作用。 这是我 上课的 所有内容: 这是我的 子类 : 当

  • 我试了一下A,B,C都正确,大家看一下是这样吗 B,C是否都正确

  • 本文向大家介绍JavaScript中的继承之类继承,包括了JavaScript中的继承之类继承的使用技巧和注意事项,需要的朋友参考一下 继承简介       在JS中继承是一个非常复杂的话题,比其他任何面向对象语言中的继承都复杂得多。在大多数其他面向对象语言中,继承一个类只需使用一个关键字即可。在JS中想要达到继承公用成员的目的,需要采取一系列措施。JS属于原型式继承,得益于这种灵活性,我们既可以

  • 问题内容: 我已经看到了许多不同的JSON日期格式标准: 哪一个是正确的?还是最好的?有什么标准吗? 问题答案: JSON本身并未指定日期应如何表示,但JavaScript却指定了。 你应该使用的方法发出的格式: 原因如下: t’s human readable but also succinct It sorts correctly It includes fractional seconds,

  • 哪种语法是正确的-第一种,第二种,还是两者都正确?

  • 本文向大家介绍JavaScript 类继承,包括了JavaScript 类继承的使用技巧和注意事项,需要的朋友参考一下 示例 继承的工作方式与其他面向对象的语言相同:在超类上定义的方法可在扩展子类中访问。 如果子类声明了自己的构造函数,则它必须先通过调用父构造函数,super()然后才能进行访问this。