浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用
Object.assing(target, sources)
- ES6新增方法可以浅拷贝
target:拷贝给谁
sources:拷贝那个对象
深拷贝拷贝多层,每一级别的数据都会拷贝
var obj = {
id: 1,
name: 'andy',
msg: {
age: 18
},
color: ['pink', 'red']
};
var o = {};
function deepCopy(newobj, oldobj) {
for (var k in oldobj) {
var item = oldobj[k];
if (item instanceof Array) {
newobj[k] = [];
deepCopy(newobj[k], item)
} else if (item instanceof Object) {
newobj[k] = {};
deepCopy(newobj[k], item)
} else {
newobj[k] = item;
}
}
}
deepCopy(o, obj);
console.log(o);