js 的这个语法是个什么东西?

2018-12-13 16:21:54 +08:00
 rizon

今天偶然发现这种写法,还是挺有意思的。

function fun({
                 detail: {
                     value
                 }
             }) {
    console.log(value)
}
fun({detail: {value: "12"}})

不是专门搞 js 的,所以不是很懂,请问这个东西叫什么名字?是个什么概念的什么存在啊?

3935 次点击
所在节点    程序员
25 条回复
codehz
2018-12-14 00:07:49 +08:00
@crs0910 #10
没错,js 的解构最坑的一点是,数组的解构是把数组当作 generator 来使用,得先构造一个迭代器,然后获取前几位的值,再干掉迭代器,因此效率上可能会有坑({0: a, 1: b} = x; 和 [a, b] = x;相比 可能 前者更慢,当然实际情况可能会随着预热而变化,另外各种运行环境也在更新,以后 [a,b]=[b,a] 这种写法应该不会有性能坑)
maggielol
2018-12-14 09:10:19 +08:00
挺好用的,解构还可以设置默认值,这样函数内部就不用判断 argument,少了很多 if-else...
linZ
2018-12-14 10:11:30 +08:00
解构,说白了就是快速从一个对象里面拿东西
1010543618
2018-12-14 11:52:20 +08:00
Redux 里全是这个写法
greatbody
2018-12-14 22:52:01 +08:00
function fun({
detail: {
value
}
}) {
console.log(value)
}
fun({ detail: { value: "12" } })
给楼主格式化下代码

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

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

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

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

© 2021 V2EX