У меня есть класс, который несколько раз обманул.Как бороться с «этим» в обратных вызовах?
Captcha = function(el) {
var _this = this;
this.el = $(el);
this.button = this.el.parent().find('button');
this.render();
};
Captcha.prototype.callback = function() {
_this.el.addClass('visuallyhidden');
_this.button.removeClass('visuallyhidden');
};
Captcha.prototype.render = function(grecaptcha){
this.grecaptcha.render(this.el.dom[0],{
'sitekey' : 'hash',
'callback': this.callback
});
};
this.callback ссылается на функцию, которая срабатывает в качестве обратного вызова на апи-запроса. Как вы можете видеть, я пытаюсь использовать _this для ссылки на функцию, но это почему-то недоступно внутри обратного вызова.
сделать ваш _this глобальный –
заменить '' this.callback' с this.callback.bind (это) ' – dandavis
@ S.Petrosov Я не могу потому что я иметь более одного экземпляра класса и обратного вызова должен знать, какой он есть. – Himmators