深拷贝
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
// 克隆
function getType(obj) {
// [object Array]
let result = Object.prototype.toString.call(obj).slice(8, -1);
return result;
}
// let arr = [1,2];
// console.log(getType(arr));
function copyClone(obj) {
let result;//保存容器是[] 或者 {}
let objectclass = getType(obj);//调用getType(obj)这个函数
if (objectclass === "Object") {
result = {};
}
else if (objectclass === "Array") {
result = [];
}
else {
return objectclass;
}
for (key in obj) {
let value = obj[key];
// console.log(value)//1 2 3 4 5 6
if (getType(value) === 'Object' || getType(value) === "Array") {
result[key] = copyClone(value);
} else {
result[key] = obj[key];
}
}
return result;
}
let a = [1, 2, [3, 4], 5, 6];
let newclone = copyClone(a);
newclone[2][0] = 10000;
console.log(newclone, a);
</script>
</body>
</html>
只会改变自己本身,不会改变原来的内容