js 对象的浅拷贝和深拷贝
Posted 潮哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 对象的浅拷贝和深拷贝相关的知识,希望对你有一定的参考价值。
//浅拷贝,拷贝内存块,拷贝部门代码不共存 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);//"这是一个文本"
以上是关于js 对象的浅拷贝和深拷贝的主要内容,如果未能解决你的问题,请参考以下文章