Страницы

Поиск по вопросам

пятница, 7 июня 2019 г.

Как обратиться к методу объекта из колбэка в JS?

Вот у меня есть код:
class BaseInput{ constructor(value){ this.makeButtonVisible = null; this.makeButtonVisible = function(){ alert(1234); }; this.makeButtonInvisible = null;
this._input = document.createElement('input'); this._input.type = 'text'; this._input.value = value; this._input.dataset.value = value;
this._input.oninput = function(){ if (this.value != this.dataset.value) BaseInput.makeButtonVisible(); else alert(321); }
document.querySelector('.container').appendChild(this._input); } }
в this._input.oninput я добавляю функцию, которая должна обратиться к методам makeButtonVisible или makeButtonInvisible этого объекта


Ответ

this._input.dataset.value = value; this._input.logic = this;
this._input.oninput = function(e) { if (this.value != this.dataset.value) this.logic.makeButtonVisible(); else alert(321); };
или
this._input.dataset.value = value;
this._input.oninput = (e) => { if (this._input.value != this._input.dataset.value) this.makeButtonVisible(); else alert(321); };
или
this._input.dataset.value = value;
this._input.oninput = (function(e) { if (this._input.value != this._input.dataset.value) this.makeButtonVisible(); else alert(321); }).bind(this);

Комментариев нет:

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