网友回复
例如一个对象obj1,另外一个是拷贝变量
var obj1 = {
'name' : 'zhangsan',
'age' : '18',
'language' : [1,[2,3],[4,5]],
};
var obj2 = obj1;
深拷贝:将obj1对象拷贝到obj2对象中,包括 obj1 里面的子对象,(仅仅拷贝对象本身,指针引用一下)
浅拷贝:将obj1对象拷贝到 obj2对象中,但不包括 obj1里面的子对象language(完全拷贝你和你的子子孙孙,全部复制一份放在单独的内存空间中,不是简单的指针指向)
浅拷贝示例代码:
var obj1 = {
'name' : 'zhangsan',
'age' : '18',
'language' : [1,[2,3],[4,5]],
};
var obj2 = obj1;
var obj3 = shallowCopy(obj1);
function shallowCopy(src) {
var dst = {};
for (var prop in src) {
if (src.hasOwnProperty(prop)) {
dst[prop] = src[prop];
}
}
return dst;
}
obj2.name = "lisi";
obj3.age = "20";
obj2.language[1] = ["二","三"];
obj3.language[2] = ["四","五"];
console.log(obj1);
//obj1 = {
// 'name' : 'lisi',
// 'age' : '18',
// 'language' : [1,["二","三"],["四","五"]],
/...点击查看剩余70%


