Object.assign()、Object.create()、Object.dedinedProperty()的作用與區(qū)別

1、Object.assign(target,...sources)方法用于將自身所有可枚舉屬性(繼承而來的屬性不行)的值(原始類型會(huì)被包裝為對(duì)象,只有字符串的包裝對(duì)象才可能有自身可枚舉屬性)從一個(gè)或多個(gè)源對(duì)象復(fù)制到目標(biāo)對(duì)象(不會(huì)跳過值為null或undefined的源對(duì)象),并且返回一個(gè)新的目標(biāo)對(duì)象(目標(biāo)對(duì)象自身也會(huì)被改變)。

2、Object.create(proto,[propertiesObject])創(chuàng)建一個(gè)新對(duì)象,使用現(xiàn)有的對(duì)象來提供新創(chuàng)建的對(duì)象的_proto_原型,第二個(gè)參數(shù)是添加到新創(chuàng)建的對(duì)象的可枚舉屬性(是自身的屬性,不是原型鏈上的屬性)對(duì)象的屬性描述符以及相應(yīng)的屬性的名稱,屬性分成數(shù)據(jù)屬性(configurable\writable\enumerable\value,除了value外,其他特性默認(rèn)為false)和訪問器屬性(configurable\enumerable\get\set),寫法為

o2=Object.create( { }, { p:

{value:42,

writable:true,

enumerable:true,

configurable:true

}

});

3、Object.dedinedProperty(obj,prop,descriptor)直接在一個(gè)對(duì)象上(obj)定義一個(gè)新屬性(prop),或者修改一個(gè)對(duì)象的現(xiàn)有屬性,并返回這個(gè)對(duì)象,第三個(gè)參數(shù)與Object.create的第二個(gè)參數(shù)一樣

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容