我有以下代码:
var Foo = function(){
this._temp="uh";
};
Foo.prototype._handler=function(data, textStatus){
alert(this._temp);
}
Foo.prototype.run=function(){
$.ajax({
url: '....',
success: this._handler
});
}
所以当我朗读它时:
new Foo().run();
ajax查询已经返回,处理程序被处理,我收到this._temp is undefined
的错误。是什么原因以及如何使用此代码模板进行修复?
答案 0 :(得分:3)
$.ajax({
url: '....',
success: this._handler.bind(this)
});
您需要绑定函数的上下文。
如果您使用调试器(在Web浏览器中可用),您将看到this
未引用您的对象实例。