-
浅拷贝
-
拷贝的是栈中的地址而非堆中具体的值
-
假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝
et obj1 = { a: 1, b: 2 }; let obj2 = obj1; obj2.a = 11; console.log(obj1); //{a:11,b:2}
-
-
深拷贝
-
拷贝堆中的值
-
深拷贝实现方法
-
用递归的思想封装深拷贝函数(deepCopy),实现深拷贝
function deepCopy(obj) { if (obj instanceof Array) { var newObj = []; } else { var newObj = {}; } for (let i in obj) { if (typeof obj[i] == "object") { newObj[i] = deepCopy(obj[i]); } else { newObj[i] = obj[i]; } } return newObj; }
-
JSON方法实现深拷贝
let obj1 = { a: [1], b: 2 }; let obj2 = JSON.parse(JSON.stringify(obj1));
-
-
javascript 深拷贝与浅拷贝的区别(深拷贝的实现方式)
最新推荐文章于 2022-07-27 10:58:51 发布