我正在学习JavaScript并注意到当一个变量被分配给另一个变量时,它不会复制它的内容,而是成为同一变量的扩展。例如:
var data1 = {"name": "john", "age": 34, "city": "london"}
var data2 = data1
delete data2.city
console.log(data1)
{"name": "john", "age": 34}
以上代码不仅会从city
删除data2
属性,还会从data1
删除。
我应该如何将内容从data2
复制到data1
并更改它而不会打扰data1
?
答案 0 :(得分:2)
您的变量指向同一个对象。
var data2 = Object.assign({}, data1)