我正在创建一个JavaScript类。一些方法包含使用JQuery的AJAX调用。我所面临的问题是,由于范围的变化,我无法在AJAX回调中使用this
关键字。我已经提出了一个hackey解决方案,但是我想知道最佳实践方法是什么?在方法内使用`this`关键字在Ajax调用的解决方案?
下面是一个例子:
var someClass = function() {
var someElement = $('form');
this.close = function() {
someElement.remove();
};
this.query = function() {
$.ajax({
url: someurl,
success: function() {
this.close(); // does not work because `this` is no longer the parent class
}
});
};
};
这个问题经常被问到,但由于标题非常不同,所以很难找到可比较的副本。 –
在定义'this.query()'之前设置'var that = this;'并在里面使用'that'而不是'this'。 –
@Michael他们需要有一个更好的方式来将类似的问题链接在一起,而不是标记为重复。 – puk