基於Chrome開發人員工具的一個斷點,我想我正在處理一個範圍問題,我可以弄清楚。這是我定義函數的方式嗎?下面的腳本是一個包含js文件和我希望可用於其他函數的數組'timeStamp,而不必每次都調用loadData函數。javascript以外的範圍
timeStamp數組一旦離開for循環,甚至離開函數,它就會變成undefined。
var timeStamp = []; // Want this array to be global
function loadData (url){
$.getJSON(url, function(json) {
for (var i=0;i<json.length;i++){
timeStamp.push(json[i].TimeStamp);
}
console.log(inputBITS); //returns the value
});
console.log(inputBITS); //undefined
}
感謝您anyhelp
謝謝你的解釋。去檢查成功處理程序。 – rd42 2012-04-19 21:30:50
@ rd42 - 你已經有一個成功處理程序。這是匿名函數,它被聲明爲getJSON調用的第二個參數。這是在ajax調用成功完成時調用的函數。它在ajax網絡完成後的某段時間被調用。 – jfriend00 2012-04-19 21:36:40
我有點困惑。兩個console.logs()都在函數中,但只有一個被定義,第二個console.log()在加載數組之前不會被調用,對吧? – rd42 2012-04-19 21:38:16