Object.assign 是浅拷贝,如下代码,x 输出值被修改,这有时不是我们希望看到的
var x = {d: {e: {g: 9}}}
var a = {b: 1, c: 2, d: {e: {g: 2}}}
Object.assign(a,x)
a.d.e.g ="abc"
console.log(x)
安装
npm install extend
修改后代码如下,根据输出可见 x 对象的值没有改变
var extend =require("extend");
var x = {d: {e: {g: 9}}}
var a = {b: 1, c: 2, d: {e: {g: 2}}}
var z = extend(true,a,x)
a.d.e.g ="abc"
console.log(x)