在一個簡單的定義中,Object.create(proto[, propertiesObject])是定義對象屬性的摘要或定義對象屬性的規範的一種方式。它的工作原理與其他一些語言中的abstract classes
類似,&不是specific object
。
它並不一定爲正在創建的對象的道具提供默認值。 您只提供了一個文字(4),這顯然不是能夠描述屬性規範的對象。我們將在這裏看到,它自己的4個(甚至不一定)只是腿的屬性對象的一部分。
現在。考慮到這一點,我們嘗試使用Object.create()
來創建dog
對象。在這裏,我們去:
- 要求:我們希望我們的狗有一個名爲
legs
屬性。我們需要legs
枚舉對象時可枚舉。我們不想讓別人用賦值運算符來改變它。 &我們也希望默認爲4
- 實施:現在,我們已經決定
legs
財產的規範,我們需要一個Property Descriptor來定義它[的Object.defineProperties(obj, props)
第二個參數]
的。上述props
是第二{&}可選在Object.create(proto[, propertiesObject])
&參數具有用於描述對象的特性一些鍵:
props {configurable, enumerable, value, writable, get, set}
允許代碼dog
對象:
let dog=Object.create(mammal,{
legs:{
enumerable : true,
writable : false,
value : 4 }
});
更多的澄清,讀取二者上面鏈接的參考文獻,是高度有益的。