0

问题描述

问题很简单,可能是我错过了什么关键信息,解构赋值的运用出了问题。
我希望能反复通过解构的方式对变量赋值,但是失败了!
clipboard.png

3 天前提问
3 个回答
2

感觉应该是语法问题。
参考 MDN - 解构赋值 中对象解构赋值里的“无声明赋值”,外边需要包一套圆括号。

0

题注的意思是“a,b”在上面已经声明过了,为什么在下面不能继续解构赋值,是吧?
我试了一下方式可以,不需要重新声明,但是也不明白为什么直接用对象不行。

var obj1={a:1,b:2}
var {a,b}=obj1;
{a,b}={a:3,b:4} //可行
var obj2={a:5,b:6}
{a,b}={...obj2}// 可行
{a,b}=obj2 // 报错
0
({a,b}=obj2)

是可以正确赋值的
因为如果不加(),{a,b}将被理解为一个块而不是对象字面量
具体见 MDN - 解构赋值

撰写答案

推广链接