javascript一種新的對象創建方式-Object.create()

聲明:所有代碼均為圖片,養成動手敲的習慣,切記直接粘貼復制
簡單來講,new Object()是一種通過構造函數來創建object的方式,而Object.create(proto, [ propertiesObject ]) 是E5中提出的一種新的創建一個擁有指定原型和若干個指定屬性的對象的方式。其實可以理解為繼承一個對象~。
語法:
Object.create(proto, [ propertiesObject ])
參數:
proto
一個對象,作為新創建對象的原型。
propertiesObject
可選。該參數對象是一組屬性與值,該對象的屬性名稱將是新創建的對象的屬性名稱,值是屬性描述符(這些屬性描述符的結構與Object.defineProperties()的第二個參數一樣)。注意:該參數對象不能是 undefined,另外只有該對象中自身擁有的可枚舉的屬性才有效,也就是說該對象的原型鏈上屬性是無效的。
拋出異常
如果 proto 參數不是 null 或一個對象值,則拋出一個 TypeError 異常。
例子:
使用Object.create實現類式繼承


a.png

其實Object.create()內部依然是通過new一個構造函數的方式來實現的,它有構造函數,不過這個構造函數是隱式存在的,看一下使老舊瀏覽器支持Object.create方法的“polyfill”就可以對它們之間的區別一目了然了:


b.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容