2015-05-11 2 views
1

Я новичок в сценарии кофе. Когда я смотрю на этот документ https://atom.io/docs/api/v0.198.0/CommandRegistry#instance-add я вижу сегмент кода, как,Что значит «:» означает в данном случае сценарий кофе?

atom.commands.add 'atom-text-editor', 
    'user:insert-date': (event) -> 
    editor = @getModel() 
    editor.insertText(new Date().toLocaleString()) 

в то время как функция подписи выглядит,

::add(target, commandName, callback) 

Таким образом, в сегменте кода, что делает : на второй линии означают ? Мое понимание - это «пользователь: insert-date» до :: commandName в подписи. Вещь после : - это «обратный вызов». Итак, : - разделитель аргументов, как ,? Я не нашел это введенным в документе сценария кофе http://coffeescript.org

ответ

0

Добавление данных мю является ответом слишком Шорт (пользователь абсолютно правильно, что второй параметр commandName может быть объектом без явных скобок {})

Исходный код Атома: 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 
+0

Спасибо. Этот ответ мне очень понятен. – Bigman

3

Этот двоеточие - это просто часть литерала объекта. Скобки вокруг объектных литералов необязательны в CoffeeScript, когда нет никакой двусмысленности. Если мы добавим дополнительные фигурные скобки, мы получаем то, что выглядит больше как JavaScript:

atom.commands.add 'atom-text-editor', { 
    'user:insert-date': (event) -> 
    #... 
} 

Так atom.commands.add который вызывается с двумя аргументами. Первая - это строка 'atom-text-editor', а вторая - объект с одним ключом ('user:insert-date'), значение которого является анонимной функцией, которая принимает один аргумент.

+0

Это очень полезен для меня. Благодарю. – Bigman

Смежные вопросы