我正在創建一個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