Я столкнулся с этой конструкцией несколько раз.Как разобрать/понять синтаксис coffeescript?
Пример 1:
_ = require 'underscore'
class Controller extends App
_doSomething: _.throttle (event) ->
$div = $(event.target).closest 'div'
...
Мой вопрос:
У меня есть проблемы с пониманием, почему эта конструкция действует.
Обычно определение функции класса идет как:
_doSomething: (event) ->
$div = $(event.target).closest 'div'
...
, 500
Так как можно _.throttle
сидеть между :
и (event)
параметра функции?
Если _.throttle
должен действовать в качестве обертки, она не должна быть написана как
_doSomething = _.throttle((event) -> # an anonymous function that takes event as parameter
$div = $(event.target).closest 'div'
...
, 500
Иногда я не уверен, что это опциональность в синтаксисе стоит того или нет. Спасибо за отличное объяснение –
Я включаю круглые скобки почти все время. Я устал запоминать таблицы приоритетов и пытаюсь мысленно разобрать код, дополнительные круглые скобки делают меня намного понятнее. Я делаю то же самое в Ruby, и мне все равно, если это не политически правильно. –
Я думаю, что я немного борюсь, потому что концептуально я не уверен, когда использовать ':' и когда использовать '='. Полностью согласен с «политически неверным» моментом. :-) –