浅拷贝:就是赋值语句的使用,
比如,对象的赋值:
例如: var obj1={a:1,b:2};
var obj2=obj1;
obj2.a=3;
console.log(obj1)
//{a:3,b:2}修改obj2.a的同时修改obj1中a的值
console.log(obj2)
//{a:3,b:2}
这样 在修改obj2.a的时候同时修改 obj1对象中a的值。 因为是obj1在赋值给obj2的时候,两个对象共用一个内存地址。这样可称为浅拷贝。
深拷贝:
var obj3={c:1,d:6};
var obj4={c:obj3.c,d:obj3.d};
obj4.c=200;
console.log(obj3)
//{c:1,d:6}修改obj4.c时并没有修改obj3中c的值
console.log(obj4)
//{c:200,d:6}
这样 在修改obj4.C的时候并没有修改 obj3对象中c的值。 因为obj3和obj4是同时拥有不同的两个内存地址。这样可称为深拷贝。
以上只是最简单的区别,让能够简单的认识些,其实在开发过程中经常用到,只是有时会遗忘这所谓定义。