关于javascript中回调函数(callback)中this指针的问题
- JScript code
function Test() { this.sClassName = "Test";}Test.prototype.show = function(0 { alert(this.sClassName); // 正常显示Test var callback = function() { alert(this.sClassName); // 显示undefined,如何才能显示Test中的this.sClassName? }; $.ajax({ success: callback }); callback = null;};var test = new Test();test.show();
[解决办法]
- JScript code
function Test() { this.sClassName = "Test";}Test.prototype.show = function(0 { alert(this.sClassName); // 正常显示Test var cn = this.sClassName; var callback = function() { alert(cn); // 这样写就可以 }; $.ajax({ success: callback }); callback = null;};var test = new Test();test.show();
[解决办法]
要理顺上下文:
function Test() {
this.sClassName = "Test";
}
Test.prototype.show = function(0 {
alert(this.sClassName); // 正常显示Test
var This = this;
var callback = function() {
alert(This.sClassName); // 显示undefined,如何才能显示Test中的this.sClassName?
};
$.ajax({
success: callback
});
callback = null;
};
var test = new Test();
test.show();