es6解构赋值机制

问题描述

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

阅读 2.6k
3 个回答

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

({a,b}=obj2)

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

题注的意思是“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 // 报错
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题