С учетом следующего кода:
outer=1
f=->
local=1
outer=0
local+outer
coffeescript создает var
для local
, но re-ueses outer
:
var f, outer;
outer = 1;
f = function() {
var local;
local = 1;
outer = 0;
return local + outer;
};
Это то, чего вы ожидаете.
Однако, если вы используете локальную переменную в функции, она зависит от внешней области, если переменная объявлена локальной или нет. Я знаю, что это функция, но она вызывала некоторые ошибки, потому что я должен проверять все внешние области для переменных с тем же именем (которые объявлены перед моей функцией). Интересно, есть ли способ предотвратить этот тип ошибки, объявив переменные локальными?