來自原型的新物件
在 JavaScript 中,任何物件都可以是另一個物件的原型。當一個物件被建立為另一個物件的原型時,它將繼承其所有父屬性。
var proto = { foo: "foo", bar: () => this.foo };
var obj = Object.create(proto);
console.log(obj.foo);
console.log(obj.bar());
控制檯輸出:
> "foo"
> "foo"
注意 Object.create
可以從 ECMAScript 5 獲得,但是如果你需要支援 ECMAScript 3,這裡有一個 polyfill
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
Object.create()
所述的 Object.create()
方法建立具有指定原型物件和屬性的新物件。
語法:Object.create(proto[, propertiesObject])
引數 :
- proto (該物件應該是新建立的物件的原型。)
- propertiesObject (可選。如果指定且未定義,則具有可列舉自身屬性的物件(即,在其自身上定義的那些屬性,而不是沿其原型鏈的可列舉屬性)指定要新增到新建立的物件的屬性描述符,並使用相應的屬性名稱。這些屬性對應於
Object.defineProperties()
的第二個引數。)
返回值
具有指定原型物件和屬性的新物件。
例外
一個型別錯誤異常,如果原引數不是空值或物件。