我是咖啡脚本的新手。当我查看此文档时https://atom.io/docs/api/v0.198.0/CommandRegistry#instance-add 我看到了像
这样的代码段::add(target, commandName, callback)
虽然函数签名看起来,
:
所以在代码段中,第二行的:
是什么意思?我的理解是签名中commandName
为:
之前的'user:insert-date'。 :
之后的事情是“回调”。那么,
是一个像{{1}}这样的参数分隔符?我没有在咖啡脚本文档http://coffeescript.org
答案 0 :(得分:3)
冒号只是对象文字的一部分。当没有歧义时,CoffeeScript中的对象文字大括号是可选的。如果我们添加可选的大括号,我们会得到更像JavaScript的东西:
atom.commands.add 'atom-text-editor', {
'user:insert-date': (event) ->
#...
}
因此使用两个参数调用atom.commands.add
。第一个是字符串'atom-text-editor'
,第二个是一个带有一个键('user:insert-date'
)的对象,其值是一个带有单个参数的匿名函数。
答案 1 :(得分:0)
附加mu太短了答案(用户绝对正确,第二个参数commandName
可以是没有显式括号{}的对象
Atom的源代码: https://github.com/atom/atom/blob/v0.198.0/src/command-registry.coffee#L81
add: (target, commandName, callback) ->
if typeof commandName is 'object'
commands = commandName
disposable = new CompositeDisposable
for commandName, callback of commands
disposable.add @add(target, commandName, callback)
return disposable