javascript - JS 对象拷贝问题
本文介绍了javascript - JS 对象拷贝问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在做对象拷贝的时候,如果仅考虑对值的拷贝,就比如项目中的列表数据但是存储在一个对象中,我想对该对象进行拷贝的话能否使用JSON的思路,直接把obejct转成json字符串,然后再转成obejct,完成对值的拷贝?这种方法有没有什么弊端?
解决方案
1.JSON这两个方法的兼容性(ie 6/7)
2.这个方法本身存在一些问题
示例代码:
function deepCopy(oldValue) {
var newValue
strValue = JSON.stringify(oldValue)
return newValue = JSON.parse(strValue)
}
var a = {
b: 'b',
c: [1,2,4],
d: null
}
copy = deepCopy(a)
console.log(a === copy) // false
console.log(a.b === copy.b) // true
console.log(a.c === copy.c) // false
console.log(a.d === copy.d) // true
var o = {
a: 1,
b: 2,
sum: function() { return a + b; }
};
var o2 = JSON.parse(JSON.stringify(o));
console.log(o2);
相关链接:
js深度复制一个对象使用JSON.stringify是最好的办法吗?
javascript deep copy using JSON
这篇关于javascript - JS 对象拷贝问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文