首頁 > web前端 > js教程 > Object.create:比「new」更好的實例化物件的方法?

Object.create:比「new」更好的實例化物件的方法?

Linda Hamilton
發布: 2024-11-16 20:02:03
原創
962 人瀏覽過

Object.create: A Better Way to Instantiate Objects Than `new`?

Object.create:實例化物件的新方法

Javascript 1.9.3 / ECMAScript 5 引入了Object.create,這是Douglas Crockford 大力提倡的方法和其他人。此方法在實例化物件時提供了傳統 new 關鍵字的替代方法。

要將new 替換為Object.create,讓我們檢查以下程式碼:

var UserA = function(nameParam) {
    this.id = MY_GLOBAL.nextId();
    this.name = nameParam;
}
UserA.prototype.sayHello = function() {
    console.log('Hello '+ this.name);
}
var bob = new UserA('bob');
bob.sayHello();
登入後複製

假設MY_GLOBAL.nextId 存在,我們可以使用Object.create實例化UserA,如下:

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
    }
});
登入後複製

優點Object.create

Object.create 相對於new 的一個優點是它允許差異繼承。物件可以直接繼承其他物件的屬性,而不需要原型鏈。這是透過將物件作為第二個參數傳遞給 Object.create 來完成的,您可以在其中定義繼承的屬性。

另一個優點是它的彈性。 Object.create 可讓您使用屬性描述符語法設定屬性屬性(可列舉、可寫、可設定),從而使您可以更好地控制物件屬性的行為。

以上是Object.create:比「new」更好的實例化物件的方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板