Object.create:「new」的現代替代品
在JavaScript 1.9.3 (ECMAScript 5) 中,引入了Object . create方法成為了討論的話題。此方法為創建物件的傳統“new”運算符提供了替代方案。讓我們探討一下它的優點以及如何有效地使用它。
挑戰
在提供的範例中,目標是用 Object 取代「new」的使用。 create 建立一個名為「bob」的 User 物件。
目前方法
目前方法包括定義一個普通物件「userB」並使用 Object.create 建立「 bob」作為「userB」的代表。但是,這種方法引入了一個不必要的公共「init」方法,並且名稱和 ID 屬性未正確初始化。
更有效的方法
Object.create當涉及到差異繼承時,物件直接從現有物件繼承,這才是真正的亮點。在這種情況下,我們可以使用所需的屬性來初始化“bob”物件作為Object.create 的第二個參數:
var userB = { sayHello: function() { console.log('Hello ' + this.name); } }; var bob = Object.create(userB, { id: { value: MY_GLOBAL.nextId(), enumerable: true }, name: { value: 'Bob', enumerable: true } });
在這種方法中,我們將“id”和“ name」屬性指定為具有屬性屬性(可列舉、可寫入、可設定)的物件字面量。這允許我們設定初始值並控制它們的可訪問性。
結論
Object.create 為物件建立提供了強大的機制,具有靈活的繼承和屬性初始化選項。透過採用 Object.create,開發人員可以提高 JavaScript 程式碼庫的可維護性和靈活性。
以上是Object.create:它是 JavaScript 中「new」的更好替代方案嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!