javascript类方法封装问题

时间:2014-10-29 11:20:33

标签: javascript

我对javascript很新,我认为这是一个愚蠢的问题,但我不知道如何在谷歌上搜索我的问题。

我有一个"班级"那样:

function Myclass(){}

Myclass.prototype.method1() = function(){

    whatever.onload = function(){
      this.method2();
    }

};

Myclass.prototype.method2() = function(){};

我的问题是"这个"与我的班级不再相关。在这个匿名函数范围内,我无法访问我的方法2。

我该如何解决这个问题?

感谢您的建议。

1 个答案:

答案 0 :(得分:4)

最简单的方法是:

Myclass.prototype.method1 = function(){
    var self = this;
    whatever.onload = function(){
      self.method2();
    }
};

变量self即使在method1完成执行后仍然存在,以便用method1声明的onload函数以后仍然可以访问它。 (有关此内容的更多信息,请参阅google" JavaScript闭包"。)

相关问题