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

Локальные функции декларируются ключевым словом 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 };
        }
    }

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>.

Подробнее о форматировании

CAPTCHA
Этот вопрос помогает предотвратить автоматический спам
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.
To prevent automated spam submissions leave this field empty.