Локальные функции декларируются ключевым словом function, но не могут иметь имени. Их
значения подобны литералам целых чисел или строкам:
var f = function() { /* ... */ };
f(); // вызов функции
Локальные функции имеют доступ к их параметрам, статическим переменным текущего класса, но также и к локальным переменным, которые были объявлены до них :
var x = 10;
var add = function(n) { x += n; };
add(2);
add(3);
// теперь x = 15
Тем не менее, локальные функции объявленные в методах не имеют доступа к значению this. Для получения этого доступа, вам придётся объявить локальную переменную, такую как me :
class C {
var x : Int;
function f() {
// вызовет ошибку компиляции
var add = function(n) { this.x += n };
}
function f2() {
// будет успешно откомпилировано
var me = this;
var add = function(n) { me.x += n };
}
}