我想在我的JavaScript對象中創建一個數組,其中包含使用jQuery中的$ .getJSON()函數從JSON文件中拉入的對象。我遇到了範圍問題,看起來數組元素是在$ .getJSON()函數中設置的,但在它之外,數組是空的。下面是代碼:在JavaScript對象的範圍問題
function player(playlist){
...
var tracks = [];
this.start = function() {
...
$.getJSON(playlist, function(data){
$.each(data.tracks, function(key,value){
var track_info = function(info){return info}(value);
tracks.push(track_info);
});
console.log("from .getJSON function");
console.log(tracks);
});
console.log("outside .getJSON function");
console.log(tracks);
...
};
...
$(document).ready(function(){
var the_player = new player(playlist);
the_player.start();
)};
輸出是:
outside .getJSON function
[]
from .getJSON function
[Object, Object, Object]
而且所有的對象包含從JSON文件的正確數據。
我對這個問題感到困惑,有人能幫我理解嗎?
啊!這就說得通了!那麼在繼續使用代碼之前,有沒有一種好的方法可以讓.getJSON完成?我應該從.getJSON調用中調用下一個代碼嗎? – DorkRawk
@DorkRawk:「我應該從.getJSON調用中調用下一個代碼嗎?」 - 在一個! – Eric