Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2018, 16:53
Аспирант
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 37

Классы и методы
Любезные гуру, есть код:
class getData(args)
{
    constructor() {
        $.ajax({
            // какой-то запрос
            success: function (data) {
                _itr_data(data);
            }
        })
    }

    _itr_data(data) {
        // что-то делает
    }

    // Как из конструктора запустить метод класса?

    this._itr_data(data) // не работает
    self._itr_data(data) // тоже не работает
    // _itr_data is not defined
    
}

Подскажите плиз. Классы только ковыряю.
Ответить с цитированием
  #2 (permalink)  
Старый 26.01.2018, 17:01
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

Может так?
class getData {
    constructor() {
        var inst = this;
        $.ajax({
            // какой-то запрос
            success: function(data) {
                inst._itr_data(data);
            }
        })
    }

    _itr_data(data) {
        // что-то делает
    }
}
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2018, 17:06
Аспирант
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 37

Данке шон! Работает. только не совсем понял как...
Ответить с цитированием
  #4 (permalink)  
Старый 26.01.2018, 17:18
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

В конструкторе класса сохраняю ссылку на этот класс (строка 3) и обращаюсь к методу этого класса из callback-функции "success" jQ.
Сохранил ссылку потому что в калбэке "this" уже не будет указывать на класс "getData".
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2018, 17:28
Аспирант
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 37

Тоесть, если я правильно понял, есть смысл сразу создать константу со ссылкой на класс и далее спокойно ее юзать или всеже лучше ее определять в конструкторе?

вопрос отпал. константу можно определить только в конструкторе. Спасибо еще раз!

Последний раз редактировалось Dark Souls, 26.01.2018 в 17:36.
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2018, 17:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

class getData {
    constructor() {
        $.ajax({
            // какой-то запрос
            success: data => this._itr_data(data)
        })
    }
 
    _itr_data(data) {
        // что-то делает
    }
}

Если используете новомодную классовую хренотень, то и стрелочки использовать можете, а оные автоматически решают данный вопрос.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2018, 17:58
Аспирант
Отправить личное сообщение для Dark Souls Посмотреть профиль Найти все сообщения от Dark Souls
 
Регистрация: 06.03.2017
Сообщений: 37

спасибо! Действительно работает. не знал
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрыть классы по маске kot_k_k Общие вопросы Javascript 9 30.08.2017 15:35
Свои классы в autocomplete ui Bezlepkin Общие вопросы Javascript 0 27.03.2013 14:16
Мастер классы по js l-liava-l Оффтопик 5 24.12.2012 17:30
Классы в javascript harmony. Mахmахmахimus Оффтопик 4 16.03.2012 12:17
JS классы - как объединить функции в класс olga153b Events/DOM/Window 3 01.11.2011 14:13