var foo = {
num: 12,
data:[12,15,55,66]
}
// 赋值
// var foo2 = foo;
// foo2.num = 19;
// foo2.data[0] = 1
// console.log(foo2)
// console.log(foo)
// 浅拷贝
// function copy(obj) {
// var Obj = {};
// for(var i in obj) {
// Obj[i] = obj[i]
// }
// return Obj;
// }
// var foo3 = copy(foo)
// foo3.num = 14
// foo3.data[0] = 12
// console.log(foo3)
// console.log(foo)
// 深拷贝
function deepCopy(obj) {
var Obj = new obj.constructor()
if(typeof obj !== 'object') return obj
if(obj instanceof Date) return new Date(obj)
if(obj instanceof RegExp) return new RegExp(obj)
for(var i in obj) {
if(obj.hasOwnProperty(i)) {
Obj[i] = deepCopy(obj[i])
}
}
return Obj;
}
var foo4 = deepCopy(foo);
foo4.num = 55
console.log(foo4)
console.log(foo)
console