Ich habe eine Klasse, die mehrere Male erklärt wird.Wie mit "das" in Rückrufen umgehen?
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 eine Funktion verweist, die als Rückruf auf einer api-Anfrage ausgelöst wird. Wie Sie sehen können, versuche ich _this zu verwenden, um auf die Funktion zu verweisen, aber das ist aus irgendeinem Grund nicht im Callback verfügbar.
machen Ihre _this global –
ersetzen 'this.callback' mit' this.callback.bind (dieser) ' – dandavis
@ S.Petrosov kann ich nicht weil ich mehr als eine Instanz der Klasse haben und die Rückruf muss wissen, wer es ist. – Himmators