我有一个经过多次实例化的课程。
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引用一个在api-request上作为回调触发的函数。正如您所看到的,我尝试使用_this来引用该函数,但由于某种原因,_this在回调中不可用。
答案 0 :(得分:0)
您始终可以将对象作为快速存储添加到window
对象。
Captcha = function(el) {
var _this = this;
window.captchaObject = this;
this.el = $(el);
this.button = this.el.parent().find('button');
this.render();
};
Captcha.prototype.callback = function() {
var _this = window.captchaObject;
_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
});
};