根据不包含引用对象的普通数组深拷贝得到启发,不拷贝引用对象,拷贝一个字符串会新辟一个新的存储地址,这样就切断了引用对象的指针联系。
测试例子:
var test={
a:"ss",
b:"dd",
c:[
{dd:"css",ee:"cdd"},
{mm:"ff",nn:"ee"}
]
};
var test1 = JSON.parse(JSON.stringify(test));
console.log(test);
console.log(test1);
test1.c[0].dd="change";
console.log(test1);//改变test1的c属性对象的d属性
console.log(test); //不影响test.c[0].dd的值
网友评论