我想在我的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