js深度克隆
js对象组成
说对象的深度克隆之前,要先明白JS 中对象的组成。
以一句话说js中一切皆对象
具体数据类型分为两种:
- 原始数据类型
- 引用数据类型
原始数据类型:其中存储的是对象的实际地址。eg.
number、string、boolean、还有两个特殊的null、undefined引用数据类型:其中存储的是对象的引用地址。eg.
array、function、object
克隆的概念
浅度克隆:原始类型为值传递,对象类型仍为引用传递。
深度克隆:所有元素或属性均完全复制,与原对象完全脱离,也就是说所有对于新对象的修改都不会反映到原对象中。
顾名思义,克隆就是将a同样复制一份变成b,那何为深度克隆呢?先来看一个例子:
浅克隆
var a = 1;
var b = a;
a = 10;
console.log(b); // 1
var a = 'hello'</