您好,匿名用户
随意问技术百科期待您的加入

JS里在闭包中对this引用的困惑

0 投票

想在js里实现类的封装,遇到一个问题。具体的请看代码。问题见注释

var TestClass;

if (TestClass == undefined) {
  TestClass = function(){
  }
}
TestClass.prototype.init = function (options) {
	$(".alert_click").click(function(){
		this.popup("test");
                //这样的代码会提示popup未定义。如果想在此处调用popup应该怎么做?
	});
};
TestClass.prototype.popup = function (value) {
	alert(value);
}

			
$(function(){
	var testClass = new TestClass();
	testClass.init();
}
用户头像 提问 2012年 12月1日 @ Nero 上等兵 (377 威望)
分享到:

1个回答

0 投票
 
最佳答案
var TestClass;

if (TestClass == undefined) {
  TestClass = function(){
  }
}
	TestClass.prototype.init = function (options) {
		var self = this;
        $(".alert_click").click(function(){
                self.popup("test");//访问闭包里的this
                //这样的代码会提示popup未定义。如果想在此处调用popup应该怎么做?
        });
	};
	TestClass.prototype.popup = function (value) {
		    alert(value);
	}

                        
	$(function(){
        var testClass = new TestClass();
        testClass.init();
	});
用户头像 回复 2012年 12月1日 @ Heimerdinger 上等兵 (311 威望)
选中 2012年 12月1日 @Nero
提一个问题:

相关问题

0 投票
1 回复 50 阅读
0 投票
0 回复 1 阅读
用户头像 提问 2014年 6月7日 @ Nero 上等兵 (377 威望)
0 投票
1 回复 44 阅读
0 投票
1 回复 60 阅读
0 投票
1 回复 38 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...