代码改变世界

JavaScript深拷贝与浅拷贝

2019-01-08 23:23  HelenTime  阅读(109)  评论(0)    收藏  举报

1.数据分为基本数据类型(String, Number, Boolean, Null, Undefined, Symbol)和引用数据类型。深拷贝和浅拷贝只针对像Object和Array这样的引用数据类型。

2.浅拷贝只复制指向某个对象的指针,不复制对象本身,两个对象共享同一块内存。深拷贝会创建一个相同的对象,与原对象不共享内存,修改新对象不影响原对象。

3.浅拷贝的实现:

1)Object.assign() (当object只有一层时是深拷贝);

2)Array.prototype.concat()

3) Array.prototype.slice()

4.深拷贝的实现:

1) JSON.parse(JSON.stringify())

2) 采用递归方式;

3)函数库lodash