Локальные функции

Локальные функции декларируются ключевым словом function, но не могут иметь имени. Их значения подобны литералам целых чисел или строкам:

    var f = function() { /* ... */ };
    f(); // вызов функции
</div>

Локальные функции имеют доступ к их параметрам, статическим переменным текущего класса, но также и к локальным переменным, которые были объявлены до них :

    var x = 10;
    var add = function(n) { x += n; };
    add(2);
    add(3);
    // теперь x = 15
</div>

Тем не менее, локальные функции объявленные в методах не имеют доступа к значению 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 };
        }
    }
</div>