JS对object赋值更改数据后,原来的数据也会跟着更改的问题.docx - Word

例如:

var obj1 = {
  name:'张三',
  age:18
}

var obj2 = obj1
//此时我们更改obj2中的name值为李四
obj2.name = '李四'
//这时我们会发现obj1中的name也被更改为李四了 

这是因为obj2 = obj1这种赋值的方法是浅拷贝,原来的值发生变化,被赋值的值也会随之发生变化。

解决办法:

var obj1 = {
  name:'张三',
  age:18
}

var obj2 = JSON.parse(JSON.stringify(obj1))
//此时我们更改obj2中的name值为李四
obj2.name = '李四'
//这时我们会发现obj1中的name值就不会被改变了

第1页,共1页
本文共0个字符
中文(中国)
辅助功能
文档日期2023-01-03 17:13:28