- 浅拷贝指的是把一个对象中的所有内容复制一份给另外一个对象,当复制的属性是对象时,是把一个对象的地址复制给了另外一个对象,他们的指向相同
var obj1={
age:10,
sex:"男",
sayHi:function () {
console.log("您好哇");
}
};
var obj2={};
for (var key in obj1){
obj2[key]=obj1[key];
}
console.log(obj1==obj2);
- 深拷贝指的也是把一个对象中的内容复制一份到另一个对象中,但是当复制的属性是对象或者数组或者函数这些时,复制的不是地址,而是会另外开辟空间,并把对应的对象复制一份存储起来
- function deepCopy(a, b) {
for (var key in a) {
var item = a[key];
if (item instanceof Array) {
b[key] = [];
deepCopy(item, b[key]);
} else if (item instanceof Object) {
b[key] = {};
deepCopy(item, b[key]);
} else {
b[key] = item;
}
}
}