Menu
CoddyTech

展开运算符第 1 部分

本课属于 Coddy JavaScript 学习旅程的“逻辑与流程”单元。第 18 课,共 65 课。

扩展运算符(...)在 JSON 中有很多用途。例如,执行以下操作时:

const obj1 = {key1: "123"}
const obj2 = obj1
obj1.key1 = "456"
console.log(obj2.key1)

输出会是什么?

console.log(obj2.key1)
// 输出:“456”

这可能会让你感到惊讶!虽然我们只修改了 obj1,但 obj2 也变了。

这是因为我们直接赋值对象(obj2 = obj1)时,创建的是引用,而不是副本。这两个变量都指向内存中的同一个对象。

这时,展开运算符就派上用场了。我们来看看如何创建真正的副本:

const obj1 = {key1: "123"};
const obj2 = {...obj1};
obj1.key1 = "456";
console.log(obj2.key1);
// 输出:“123”

展开运算符会创建一个新对象,并将源对象的所有可枚举属性复制到新对象中。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: JavaScript 在线编译器