如何处理"这个"在回调中?

时间:2016-05-29 15:35:21

标签: javascript

我有一个经过多次实例化的课程。

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在回调中不可用。

1 个答案:

答案 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
    });
};