首頁 > web前端 > js教程 > 何時為 JavaScript 繼承選擇 Object.create 而不是 new?

何時為 JavaScript 繼承選擇 Object.create 而不是 new?

Linda Hamilton
發布: 2024-11-19 07:11:03
原創
958 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板