js 对象的浅拷贝和深拷贝
2021-05-23 11:28
标签:部门 对象 javascrip gif 浅拷贝 数据 方法 说明 string js 对象的浅拷贝和深拷贝 标签:部门 对象 javascrip gif 浅拷贝 数据 方法 说明 string 原文地址:http://www.cnblogs.com/luguiqing/p/7685904.html//浅拷贝,拷贝内存块,拷贝部门代码不共存
var obj = {
a : "a",
b : "b",
c : {
text : "这是一个文本"
}
}
var copy = obj;
copy.a = "copy";
console.log(obj.a)// "copy",可以看到这里的浅拷贝,会修改到原先的数据,因为浅拷贝是拷贝同一块内存块
//es6有Object.assign()方法用于深度拷贝,不过只是一级深度拷贝
var obj = {
a : "a",
b : "b",
c : {
text : "这是一个文本"
}
}
var assigncopy = Object.assign({}, obj);
assigncopy.a="assigncopy";
assigncopy.c.text = "assigncopytext";
console.log(obj.a) // "a"
console.log(obj.c.text) // "assigncopytext", 说明只是一级深度拷贝而已,用时要小心
//深度拷贝对象,一般都能满足
var obj = {
a : "a",
b : "b",
c : {
text : "这是一个文本"
}
}
var stringcopy = JSON.parse(JSON.stringify(obj));
stringcopy.c.text = "stringcopytext";
console.log(obj.c.text);//"这是一个文本"
上一篇:webstorm工具使用的快捷键
下一篇:搭建 Nodejs 生产环境