什么深拷贝和浅拷贝,及详解
var obj = {
name: '小甜甜',
age: 24,
say() {
console.log(11111);
}
};
浅拷贝,仅仅是指针给了另一个对象,两个对象有一个发生改变对方都可以感受到
var obj1 = obj;
obj1.name = '小辣椒';
console.log(obj);
打印结果:{name: "小辣椒", age: 24, say: ƒ}
console.log(obj1);
打印结果: {name: "小辣椒", age: 24, say: ƒ}
深拷贝:两个对象之间没有任何关系,两个对象怎么改变都没有影响
var obj1 = JSON.stringify(obj);
obj1 = JSON.parse(obj1);
obj1.name = '小番茄';
obj感受不到变化
console.log(obj);
打印结果: {name: "小甜甜", age: 24, say: ƒ}
注意:用json实现深拷贝会造成方法丢失
console.log(obj1);
打印结果: {name: "小甜甜", age: 24}