Классы и методы
Любезные гуру, есть код:
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
}
Подскажите плиз. Классы только ковыряю. |
Может так?
class getData {
constructor() {
var inst = this;
$.ajax({
// какой-то запрос
success: function(data) {
inst._itr_data(data);
}
})
}
_itr_data(data) {
// что-то делает
}
}
|
Данке шон! :) Работает. только не совсем понял как...
|
В конструкторе класса сохраняю ссылку на этот класс (строка 3) и обращаюсь к методу этого класса из callback-функции "success" jQ.
Сохранил ссылку потому что в калбэке "this" уже не будет указывать на класс "getData". |
Тоесть, если я правильно понял, есть смысл сразу создать константу со ссылкой на класс и далее спокойно ее юзать или всеже лучше ее определять в конструкторе?
вопрос отпал. константу можно определить только в конструкторе. Спасибо еще раз! :) |
class getData {
constructor() {
$.ajax({
// какой-то запрос
success: data => this._itr_data(data)
})
}
_itr_data(data) {
// что-то делает
}
}
Если используете новомодную классовую хренотень, то и стрелочки использовать можете, а оные автоматически решают данный вопрос. |
спасибо! Действительно работает. не знал :)
|
| Часовой пояс GMT +3, время: 14:37. |