我有一个Bar类:
function Bar() {
this.myMethod = function() {
$.ajax({
...,
success: function(msg){
// I can't get Bar instance with 'this'
}
});
}
}
如果ajax成功,我想对Bar实例做一些事情。我该怎么办?为ajax调用之外的实例创建var?
答案 0 :(得分:4)
function Bar() {
var self = this;
this.myMethod = function() {
$.ajax({
...,
success: function(msg){
//Use self here.
}
});
}
}
答案 1 :(得分:1)
您可以像Alex建议的那样使用变量,也可以创建包含闭包的包装函数:
[...]
this.myMethod = function () {
$.ajax({
...,
success: (function (context) {
return function(msg){
//Use context here.
}
}(this))
});
}
[...]
但是,如果你想保持简单,我会选择亚历克斯的建议,因为更明显的是发生了什么。