扫码关注官方订阅号
在做对象拷贝的时候,如果仅考虑对值的拷贝,就比如项目中的列表数据但是存储在一个对象中,我想对该对象进行拷贝的话能否使用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
深拷贝不借助外部库的话都是利用JSON中转一下
这么做对简单对象就是深拷贝,遇到Date、Function这种类型好像不好使。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
1.JSON这两个方法的兼容性(ie 6/7)
2.这个方法本身存在一些问题
示例代码:
相关链接:
js深度复制一个对象使用JSON.stringify是最好的办法吗?
javascript deep copy using JSON
深拷贝不借助外部库的话都是利用JSON中转一下
这么做对简单对象就是深拷贝,遇到Date、Function这种类型好像不好使。