在优秀的paths.js库中,我看到使用了这个结构:
({a,b}) ->
c= a * b
#...
我可以看到它是一个非常简洁的解包参数字典的方法,但我没有在coffeescript文档中提到它。
有趣的是,
{x,y}
和({x,y})->
编译成非常不同的javascript结构。
是否有解释在文档中正确使用这些内容?
答案 0 :(得分:2)
这只是隐藏在函数参数列表中的destructured object assignment。鉴于此:
o = { a: 'A', b: 'B', c: 'C' }
你可以这样说:
{a, b} = o
作为简写:
a = o.a
b = o.b
所以这"
({a,b}) ->
c = a * b
从函数的参数(某种对象)中提取a
和b
个键的值,并将它们分配给本地a
和{{ 1}}变量。换句话说,它与:
b