實話說,之前不知道還有這麽個玩意。偶然間看手寫 new 源碼,才算和它第壹次認識。
Object.create() 官方解釋:方法創建壹個新對象,使用現有的對象來提供新創建的對象的 proto 。
其實 Object.create() 有兩個參數: Object.create(proto, [propertiesObject])
proto : 必須,表示新建對象的原型對象。
即該參數會被賦值到目標對象(即新對象,或說是最後返回的對象)的原型上。
該參數可以是null, 對象, 函數的 prototype 屬性
註意:創建空的對象時需傳null , 否則會拋出 TypeError 異常
propertiesObject : 可選,添加到新創建對象的可枚舉屬性。
( 即其自身的屬性,而不是原型鏈上的枚舉屬性 ) 對象的屬性描述符以及相應的屬性名稱。
這些屬性對應 Object.defineProperties() 的第二個參數。
與 普通方式 創建對象 不同點