function getData(jsonAddress) {
var data = new Array();
var xhr = $.getJSON(jsonAddress, function(meas) {
for (var i = 0; i < meas.length ; i++) {
var dt = datetimeSplitter(meas[i].valuedate);
data[i] = [Date.UTC(dt[0],dt[1]-1,dt[2],dt[3],dt[4],dt[5]),parseInt(meas[i].value,10)];
};
});
alert(data);
}
我想讓變量「data」可用於函數getData
,所以我可以返回它(在本例中爲alert)。我知道這是一個範圍問題,可以通過關閉來解決。我也理解什麼是閉包,但絕對不知道這個特定情況的語法。jQuery中的JavaScript作用域
該變量可用,但'* .getJSON'響應返回之前發生'alert()',因爲'$ .getJSON'是* asynchronous *。所以這不是一個範圍問題,這是一個時間問題。你的'alert(data);'需要在回調函數中。這就是爲什麼有一個回調函數。 –