オブジェクトの配列を作成し、配列内のオブジェクト プロパティにアクセスしようとしていますが、未定義のまま返されます。createObjArray() 関数を呼び出し、console.log(objArray[1]); を実行した直後に そして、オブジェクトをすべてのプロパティとともに印刷します。ただし、console.log(objArray[1].name); を実行しようとすると、firebug は「未定義」を出力します。また、firebug でコードをステップ実行するときに、objArray[1].name にマウスを合わせると、正しい名前が表示されます。ここで何が起こっているのか、気が狂いそうです。
var objArray = [];
function createObjectArray(numOfObjs) {
for(var i=0; i<numOfObjs; i++) {
packages.push(initObj(i));
}
}
function initObj(i){
var newPackage;
var p = {};
$.getJSON('.../package' + i + '.json', function(data) {
newPackage = new Package(data);
p.name = newPackage.name;
p.id = i;
});
return p;
}