今天碰一个js的坑,记录下,下次不能掉坑里。
-
现象:直接用
=
的方式把一个对象赋值给另一个对象,会导致修改新对象时,原对象也发生变化var obj1 = {'name': '1111'}; var obj2 = obj1; obj2.name = '2222'; console.log(obj1.name); //'2222'
- 原因:JavaScript 中对象的赋值是默认引用赋值的(两个对象指向相同的内存地址)
解决方法网上很多:
https://segmentfault.com/a/1190000018347348?utm_source=tag-newest