js中的浅克隆和深克隆

首先,js中的数据类型有简单类型和引用类型。
对于字符串类型,浅克隆是对值的复制,对于对象:
浅克隆是指没有开辟新的栈,是对对象地址的复制。共享同一块内存地址,一个对象的改变影响了另一个对象。
深克隆是指两个对象对应不同的地址。

JQuery中的extend的第一个参数可以设置是否为深拷贝

//深拷贝
var  obj = {a:{a:1}};
var  obj1 = {a:{a:2}};
$.extend(true, obj, obj1);

最简单的深拷贝

b = JSON.parse( JSON.stringify(a) )
//缺点
无法复制函数
原型链没了,对象就是object,所属的类没了。

你可能感兴趣的:(js中的浅克隆和深克隆)