2018-5-2 seo达人
如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里
1、首先理解一下“深拷贝”和“浅拷贝”的区别:
浅拷贝:a = b;//a和b中存的是相同的地址,该地址指向堆内存中相同的地方,即a和b就是一个东西,改变a的值b的值也会跟着改变,同理改变b的值a的值也会发生改变;
深拷贝:a和b中存的地址不同,但是地址对应的堆内存中的内容完全一致,即b是a的副本
2、
(1)数组和对象的浅拷贝一样 ,简单的赋值操作
var b = a;
如数组的浅拷贝:
输出的值为:
对象的浅拷贝:
输出的值为:
(2)数组的深拷贝
ES5:var b = a.concat();
输出的结果为:
ES6 let [...b] = a;
(3)对象的深拷贝
ES5:
输出的结果为:
ES6:
let {...b} = a;