复制一个对象内容给另一个对象
有种情况,我们需要操作相同的数据,但是又不希望两者出现干扰的情况。比如,angular 中,使用指令绘制图像,双向绑定,当你选中改变数据的显示或隐藏标志时,你其实并不希望它重新绘制,因为它的数据并没有更新改变,但你改变了绑定的数据的一个微不足道的属性值,就会导致其重绘,那怎么办呢,只能再复制出一个相同对象,一个提供展示,一个提供点击不请求新数据。
说的有点多,总之就是将一个对象的属性给另一个对象,最先想到的肯定是这样的:
var obj1={ 'name':'AAA', 'age':12 } console.log(obj1); var obj2 = obj1;
耦合了。。。更改一个对象属性值,另一个也会变,因为 obj1 是把对象的地址存储到了 obj2 变量值中,这并不是复制。
当然也可以进行循环然后将 key 和 value 复制给一个新的对象。
这个也能达到要求,但我们来说一个最简单的!
var json = JSON.stringify(obj1) var obj3 = JSON.parse(json)
使用转 json ,获取一个新的字符串,后再将字符串反转一下赋给一个新的变量,是不是很机智!!!