( Обновление: Ответ ниже был точным в то время, под CoffeeScript 1.0.1. Это больше не относится к CoffeeScript 1.1.0, который исправил эту проблему.)
Ничего себе, это удивляет меня.CoffeeScript
init = ->
init = -> console.log once
объявляет как внешний init
, так и внутренний init
.Это кажется мне более вероятной ошибкой, чем осознанным решением при проектировании языка - компилятор проще оценивает функцию, прежде чем он оценивает внешнее присваивание init =
.Я пошел вперед и подал проблему по этому вопросу.
Вот обходной путь:
init = null
init = ->
init = -> console.log once
Теперь есть только один init
, тот, который имеет самый внешнийОбъем.