// [“前端小智”, “王大冶”, “前端小力”]
// [“前端小智”, “王大冶”, “我是隔壁老智”]
[](()对象
当引用值是一个对象时,也会发生同样的情况,对其属性之一的任何修改都会影响这两个变量。 若要克隆对象,请使用 Object.assign()
方法,该方法会将一个或多个源对象的所有可枚举属性的值复制到目标对象,但是此方法仅对对象的一个浅拷贝。
// 示例1
const names = {
name: ‘前端小智’,
surname: ‘隔壁老智’
}
const names2 = names;
console.log(names, names2) // 打印结果是一模一样的
// 示例2
names2.surname =‘隔壁老王’;
console.log(names, names2)
// {name: “前端小智”, surname: “隔壁老王”}
// {name: “前端小智”, surname: “隔壁老王”}
// 示例3
const names3 = Object.assign({}, names);
names3.surname = ‘隔壁老色P’;
console.log(names, names3)
// {name: “前端小智”, surname: “隔壁老王”}
// {name: “前端小智”, surname: “隔壁老色P”}
要对对象进行深拷贝,需要使用其他方法。
正如我们所说,Object.assign()
方法只是一个浅拷贝(即,当我们的对象没有其他对象作为属性时