js中对象的深拷贝
js深拷贝和浅拷贝的概念和区别。
1.浅拷贝;
拷贝就是把父对像的属性,全部拷贝给子对象。此时子对象拷贝的是父对象的地址,子父对象相互影响。
2.深拷贝;
就是把父对象的属性中的值拷贝给子对象此时不论父对象如何改变都不会再影响到子对象。
var obj = {
name: '小甜甜', age: 24, say() {
console.log(11111);
}
};
var obj1 = obj;
console.log(obj1);
obj1.name = '小辣椒';
console.log(obj);
var obj = {
name: '小甜甜', age: 24, say() {
console.log(11111);
}
};
var obj1 = JSON.stringify(obj);
obj1 = JSON.parse(obj1);
console.log(obj1);
obj1.name = '小番茄';
obj感受不到变化
console.log(obj);
var obj2 = {};
for (var attr in obj) {
obj2[attr] = obj[attr]
}
console.log(obj2);
obj2.say()
obj1.name = '哈希';
console.log(obj);
var obj3 = {};
将obj合并到obj3上
Object.assign(obj3, obj);
console.log(obj3);
obj3.age = 66;
console.log(obj);
console.log(obj3);