网友回复
例如一个对象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%