dst = { "a" : 1}
src = { "edf" : {"zyx" : "right"}}
Object.assign(dst, src)
src.edf.zyx = "wrong"
console.log(dst["edf"]["zyx"])
我希望看到'right'
作爲輸出,但它打印'wrong'
。Ecma6,Object.assign不做深副本
這意味着,Object.assign
尚未完成從源到目標的複雜對象的深層複製。我如何做深層複製?
注:我知道lodash.deepClone
,但我想避免外界構架
呀' Object.assign()'只執行屬性的淺層合併。但是,目前沒有深度合併的內置函數,遞歸地發現嵌套對象中的屬性。 –
您可以使用JSON,但對於大型數據集可能會很慢。儘管如此,它儘可能接近內置的克隆,實際上比大多數庫方法更快。 – dandavis
注意,從JSON解析到JSON並不適用於函數。 –