js 中关于 let {a} = obj 这个等式的问题

2017-10-12 11:45:15 +08:00
 nearly1

刚学 JS 没多久,想问大家一个问题: 首先定义 obj = {a:1,b:2} 一般 let a = obj.a 可以简写成 let {a} = obj,我就想了一下 let {a} = obj 相当于 let {a:a} = obj 然后 let {a:a} = obj 相当于 let {a:a} = {a:1,b:2} 这一步应该是解构赋值,所以 a = 1

我的疑问是前一步:let {a} = obj 相当于 let {a:a} = obj ; 这里的{ a:a }为啥可以简写成{ a }呢?

4981 次点击
所在节点    JavaScript
9 条回复
mchl
2017-10-12 12:46:47 +08:00
mchl
2017-10-12 12:59:56 +08:00
不是简写,如果 obj 里没有 a,那就是默认值
cuzfinal
2017-10-12 13:44:29 +08:00
解构赋值,还有 let[a]=array 呢
ie88
2017-10-12 14:04:36 +08:00
cin
2017-10-12 14:06:15 +08:00
Elven
2017-10-12 15:32:30 +08:00
es6 的特性,看着舒服写着方便
lianyue
2017-10-12 15:51:38 +08:00
第二个 a 是用于重命名 比如 let {a:q} = obj
变量名是 q 变量名相同可以省略不写
milklee
2017-10-12 16:34:18 +08:00
这就相当于问“你为什么姓王?”这样的问题一样——因为这都是别人规定的 😂
nearly1
2017-10-12 16:44:30 +08:00
谢谢各位的回答

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/397018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX