Object.assign() 詳解
今天,我們來(lái)看看 Object.assign() 方法
如果你已經(jīng)知道此方法,可以看看下面的題,想想 v5 的輸出結(jié)果
如果你不知道這個(gè)方法,可以跳過(guò),先看看下面關(guān)于 Object.assign() 方法的介紹
輸出結(jié)果為:

你做對(duì)了嘛 ?下面我們就來(lái)看看Object.assign方法吧
01
方法介紹
Object.assign() 方法用于將所有可枚舉屬性的值從一個(gè)或多個(gè)源對(duì)象分配到目標(biāo)對(duì)象。它將返回目標(biāo)對(duì)象。
語(yǔ)法:
????Object.assign(target, ...sources)
參數(shù):
????target:目標(biāo)對(duì)象
????sources:源對(duì)象
返回值:
????目標(biāo)對(duì)象
注:
? ? 傳入的target對(duì)象與方法的返回值是同一個(gè)對(duì)象
? ? 是將可枚舉屬性的值分配到目標(biāo)對(duì)象
02
何為可枚舉屬性
什么是對(duì)象的可枚舉屬性?
能夠使用for...in , 輸出的屬性名,即為可枚舉的屬性名。
代碼如下:
03
題目解析
再來(lái)看看題目:
分析:題目即是將v1,v2,v3,v4對(duì)象的可枚舉屬性分配到v5上
下面,我們來(lái)看看v1,v2,v3,v4的可枚舉屬性有哪些?
運(yùn)行下面的代碼
輸出結(jié)果:

可以看出,v1,v2,v3,v4四個(gè)對(duì)象,只有0,1,2三個(gè)可枚舉屬性;
其實(shí),就是 v2 = '123' 對(duì)應(yīng)的可枚舉屬性,其它三個(gè)對(duì)象都沒(méi)有可枚舉的屬性
所以:最終v5的屬性有 0, 1, 2;
如下圖:

今日面試題:
Object.assign 是淺拷貝還是深拷貝?
更多內(nèi)容,請(qǐng)關(guān)注公主號(hào):bug收集?