javascript类方法封装问题
我对javascript非常陌生,我认为这是一个愚蠢的问题,但我不知道如何在谷歌上搜索我的问题 我有一个这样的“类”:javascript类方法封装问题,javascript,Javascript,我对javascript非常陌生,我认为这是一个愚蠢的问题,但我不知道如何在谷歌上搜索我的问题 我有一个这样的“类”: function Myclass(){} Myclass.prototype.method1() = function(){ whatever.onload = function(){ this.method2(); } }; Myclass.prototype.method2() = function(){}; 我的问题是“这”和我的课无
function Myclass(){}
Myclass.prototype.method1() = function(){
whatever.onload = function(){
this.method2();
}
};
Myclass.prototype.method2() = function(){};
我的问题是“这”和我的课无关了。在这个匿名函数作用域中,我无法访问我的method2
我如何解决这个问题
谢谢你的建议。最简单的方法是:
Myclass.prototype.method1 = function(){
var self = this;
whatever.onload = function(){
self.method2();
}
};
即使在
method1
完成执行后,变量self
仍然存在,这样用method1
声明的onload函数以后仍然可以访问它。(有关这方面的更多信息,请使用谷歌“JavaScript闭包”。最简单的方法如下:
Myclass.prototype.method1 = function(){
var self = this;
whatever.onload = function(){
self.method2();
}
};
即使在
method1
完成执行后,变量self
仍然存在,这样用method1
声明的onload函数以后仍然可以访问它。(有关这方面的更多信息,请使用谷歌“JavaScript闭包”。我将查看此内容。非常感谢,这解决了我的问题!我想你在第一行代码中的意思是Myclass.prototype.method1=function(){
。看起来像是打字错误。@Reno-Yep。我直接从问题中复制了那一行,没有注意到问题。修复了。我会检查这个。非常感谢,这解决了我的问题!我想你的意思是Myclass.prototype.method1=function()){
在您的第一行代码中。看起来像是打字错误。@Reno-yes。我直接从问题中复制了这一行,没有注意到问题。已修复。