浅拷贝与深拷贝的区别和应用场景

区别

  • 浅拷贝,只是拷贝指向原来对象的地址,新旧对象共享一块内存;
  • 深拷贝,复制并创建一个一摸一样的对象(拷贝的值是一样的,但是内存地址不一样,)
    • 1.列表内容会创建一个新的内存空间,
    • 2.不共享内存,修改新对象,旧对象保持不变

浅拷贝

var obj={a:1,b:2,c:3};
var newObj=obj;
newObj.a=0;
obj.b='b';
console.log(obj == newObj);//true
console.log(obj,newObj);
//{ a: 0, b: 'b', c: 3 }
// { a: 0, b: 'b', c: 3 }

深拷贝

var obj={a:1,b:2,c:3};
var newObj={a:1,b:2,c:3};
newObj.a=0;
obj.b='b';
console.log(newObj==obj);//false
console.log(obj,newObj);
//{ a: 1, b: 'b', c: 3 } 
// { a: 0, b: 2, c: 3 }

猜你喜欢

转载自blog.csdn.net/luoyumeiluoyumei/article/details/80865740