[ javascript ] 使用Object.create()創建對象

Object.create()

創建一個新對象,使用現有的對象來提供新創建的對象的__proto__。

具體文檔

語法

Object.create(proto[, propertiesObject])

  • 參數
    • proto: 新創建對象的原型對象。
    • propertiesObject: 可選。如果沒有指定爲 undefined,則是要添加到新創建對象的不可枚舉(默認)屬性(即其自身定義的屬性,而不是其原型鏈上的枚舉屬性)對象的屬性描述符以及相應的屬性名稱。這些屬性對應Object.defineProperties()的第二個參數。
  • 返回值
    • 一個新對象,帶着指定的原型對象和屬性。
  • 例外
    • 如果propertiesObject參數是 null 或非原始包裝對象,則拋出一個 TypeError 異常。

創建空對象的方法和區別

var obj1 = {};
var obj2 = new Object();
var obj3 = Object.create(null)

console.log(obj1.constructor) // ƒ Object() { [native code] }
console.log(obj2.constructor) // ƒ Object() { [native code] }
console.log(obj3.constructor) // undefined

console.log(obj1.constructor === obj2.constructor) // true

測試2

使用Object.create(null)創建的對象是一個乾淨的對象。它指定的繼承原型爲null,它將不會有任何屬性,甚至沒有構造函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章