Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2015, 17:39
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Область видимости this в методе push
Здраствуйте, как дать доступ к this анонимной функции внутри метода push?
Пример:
g.module({
    create: function(){
        this.beep = g.sounds["beep"];
        this.vacuum = g.sounds["vacuum"];
        this.vacuum.endArr.push(function() {
            // другие операции
            this.beep.play(); // TypeError: this.beep is undefined
        });
    }
});

Последний раз редактировалось Jekel, 22.03.2015 в 17:46.
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2015, 18:14
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

function() {
    // your code here
}.bind(this);
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2015, 18:16
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Создать переменную, ссылающуюся на this?

g.module({
    create: function(){
        this.beep = g.sounds["beep"];
        this.vacuum = g.sounds["vacuum"];
        var _this = this;
        this.vacuum.endArr.push(function() {
            // другие операции
            _this.beep.play(); // TypeError: this.beep is undefined
        });
    }
});
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2015, 18:31
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

верное решение - es6 arrow function
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #5 (permalink)  
Старый 22.03.2015, 18:49
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

Спасибо большое за ответы, все работает хорошо. Я пробовал с bind'ом ранее, но не работало, а теперь все ок)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Область видимости конструктора riva Общие вопросы Javascript 10 04.11.2014 14:09
Помогите пож с JSON, передача id ссылки. wisma jQuery 22 10.02.2014 15:36
Область видимости переменной ацкий Общие вопросы Javascript 3 27.08.2011 14:09
область видимости Ultimatum Общие вопросы Javascript 2 19.06.2011 10:47
можно ли включить функцию в глобальную область видимости из файла maxval Элементы интерфейса 13 04.10.2009 07:11