首页 > 代码库 > js深拷贝和浅拷贝
js深拷贝和浅拷贝
数组的浅拷贝
var arr = ["One","Two","Three"];
var arr2 = arr;
这便是浅拷贝,此时改变arr2数组中任意一项的值,原数组中的原始值也会跟着改变,这是因为将对象赋值给一个变量,仅仅是赋值的引用值,对象本身并有复制一次。
深拷贝方法
方法一:js的slice函数
var arr = ["One","Two","Three"];
var arr2 = arr.slice(0);
方法二:js的concat方法
var arr = ["One","Two","Three"];
var arr2 = arr.concat();
方法三:遍历每个属性
var deepCopy= function(source) {
var result={};
for (var key in source) {
result[key] = typeof source[key]===’object’? deepCoyp(source[key]): source[key];
}
return result;
}
js深拷贝和浅拷贝
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。