Известный факт что в CoffeeScript видимость ограничена. А я настолько редко и пишу да еще и в разных языках, что совсем потерялся, где какая видимость, но знаю что в CoffeeScript она разграничена. Обернута в анонимные функции.
Каждый кусок кода CoffeeScript заключен в анонимную функцию.
Две разные вставки CoffeeScript тупо не увидят переменные которые вроде бы находятся в одном уровне кода. Обернуто это по причине уменьшения разного рода конфликтов. Мне вообще-то по барабану, мне нравится сахар CoffeeScript, но излишняя защита дает знать.
Кроме переменных видимость так же ограничена и в функциях и соответственно в классах CoffeeScript.
Если нужно чтобы один кусок кода знал переменную из другого куска кода, надо просто объявить переменную в объекте window
:coffeescript
window.test=’123′
window.testf = ->
alert "as"
Так будет все работать:
<p onclick="testf()"></p>
Вообщем мой опыт разработки в CoffeeScript крайне положителен и мне все нравится. Но я бы не сказал что это самостоятельный язык. Его надо знать тем кто немного шарит в JS.
Особенную радость вызывает утилита Prepros, которая на лету конвертит CoffeeScript в JavaScript.
В этой статье я тоже упомянал CoffeeScript: