JavaScript 继承:Object.create 与 new
JavaScript 中的继承概念可能会令人困惑,因为有多种方法可以实现它。本文旨在阐明最受接受的方法,并为您的特定场景提供解决方案。
了解 Object.create 和 new
Object.create 是一个创建对象的方法通过从现有对象继承来创建新对象。当您想要创建基础对象然后使用其他属性和方法扩展它时,这非常有用。 Object.create 的语法是:
Object.create(prototype[, propertiesObject])
另一方面,new 关键字用于创建对象的新实例并调用其构造函数。 new 的语法是:
new ConstructorFunction([arguments])
选择正确的继承方法
Object.create 和 new 之间的选择取决于您的具体要求。 Object.create 非常适合创建要继承的基础对象而不调用其构造函数。例如:
const Model = { // Base object properties and methods... }; const RestModel = Object.create(Model);
但是,如果您想在继承对象上调用基础对象的构造函数,那么您应该使用 new。例如:
function Model() { // Base object constructor... } function RestModel() { Model.call(this); // Additional properties and methods... }
您的场景的解决方案
在您的情况下,您希望从 Model 基础对象继承 RestModel。要使用 Object.create 实现此目的,您需要执行以下操作:
RestModel.prototype = Object.create(Model.prototype);
这将创建一个继承自 Model 原型的新 RestModel 原型。
以上是何时为 JavaScript 继承选择 Object.create 而不是 new?的详细内容。更多信息请关注PHP中文网其他相关文章!