0
以下代碼來自顯示分頁表的簡單頁面。Javascript ajax回調和變量初始化
var exviewmodel = function() {
var self = this;
self.getList = function(pagenum) {
$.getJSON("/api/v1/getList", { page: pagenum }, function(data) {
self.paginator.count(data.count);
});
};
self.paginator = new Paginator(self.getList);
};
我檢查並驗證了代碼的工作原理以及計數在ajax成功的paginator中正確更新。
我覺得這很奇怪,因爲paginator對象只有在定義了ajax回調後才被初始化。
JS解釋器在看到像getList這樣的函數定義時會做什麼,它指向尚未在異步回調中初始化的屬性?
好的。所以執行過程就像1. JS解釋器創建一個對象來保存函數定義,而不必在函數中執行代碼。 2. self.paginator被初始化3.在成功回調中,它檢索現在初始化的paginator對象並更新它。我是否正確? – Ramnath