浅拷贝方法
- slice
- 展开运算子[...]
- Object.assign
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>浅拷贝</title>
</head>
<body>
<script>
// 浅拷贝
const arr1 = ["mike", "andy"];
// 使用 slice 方法复制阵列
const arr2 = arr1.slice(0); // 会完整复制 arr1
// 使用展开运算子复制阵列
const arr2Copy = [...arr1]; // 展开运算子
// 修改原始阵列
arr1[1] = "jacky";
// 输出结果
console.log("01", arr1); // ["mike", "jacky"]
console.log("slice 复制阵列", arr2); // ["mike", "andy"]
console.log("展开运算子", arr2Copy); // ["mike", "andy"]
// 定义一个物件
const obj1 = {
name: "mike",
age: 12,
};
// 使用 Object.assign 复制物件
const obj2 = Object.assign({}, obj1);
// 使用展开运算子复制物件
const obj3 = { ...obj1 };
// 修改原始物件
obj1.name = "XXXXX";
// 输出结果
console.log("修改后的原始物件", obj1); // { name: "XXXXX", age: 12 }
console.log("Object.assign 复制的物件", obj2); // { name: "mike", age: 12 }
console.log("展开运算子复制的物件", obj3); // { name: "mike", age: 12 }
</script>
</body>
</html>