展开运算符第 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”展开运算符会创建一个新对象,并将源对象的所有可枚举属性复制到新对象中。
亲手试试
这节课没有代码挑战。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: JavaScript 在线编译器