首页 > web前端 > js教程 > 何时为 JavaScript 继承选择 Object.create 而不是 new?

何时为 JavaScript 继承选择 Object.create 而不是 new?

Linda Hamilton
发布: 2024-11-19 07:11:03
原创
957 人浏览过

When to Choose Object.create Over new for JavaScript Inheritance?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板