复制一个对象内容给另一个对象

  有种情况,我们需要操作相同的数据,但是又不希望两者出现干扰的情况。比如,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 ,获取一个新的字符串,后再将字符串反转一下赋给一个新的变量,是不是很机智!!!

原文地址:https://www.cnblogs.com/guofan/p/6773568.html