我使用JSON工作,我想計算響應中元素的數量。函數中變量的JS可見性
$.getJSON("/api/getEvents", function(data) {
$.each(data, function(key, event) {
var count = 10;
$.getJSON("/api/getUsers", function(data) {
$.each(data, function(key, event) {
alert("Value: " + count);
count++;
});
});
alert("Count: " + count);
});
});
其結果是,我得到:
Value: 10
Value: 11
Value: 12
...
Count: 10
爲什麼數= 10?
我不太確定,這就是爲什麼我沒有發佈這個答案,但我相信在$ .getJSON中創建了一個閉包,它只捕獲對變量計數的引用。 – helpermethod 2012-02-22 08:46:10
它看起來像來自'getUsers'調用的'data'是一個空數組。你設置爲10,你增加零次,然後它提醒計數:10. – 2012-02-22 08:47:23
@ BenLee不,數組不是空的。我可以從數據中獲得元素的價值。 – 2012-02-22 08:51:06