Ваша функция обратного вызова на getJSON
получает значение plane
, но ничего с ним не делает; поэтому, когда вы делаете plane.tailNum
, plane
все еще не определено, потому что ему никогда не присваивалось значение. Кроме того, getJSON
вызов является асинхронным, поэтому вы не можете просто сделать это:
$.getJSON(sTailFileName, function(x) { plane = x; });
, поскольку plane = x
не будет выполнен (если вам не очень повезет с временем), когда вы попытаетесь получить доступ к plane.tailNum
.
Вы можете заменить вызов getJSON
синхронным вызовом $.ajax
и назначить BLOB-объект JSON на plane
в обратном вызове success
или продолжить работу первым способом. Вы всегда можете поместить свои «инструкции 300+» в отдельную именованную функцию, скажем, three_hundred_lines
и ссылаться на нее по имени:
function three_hundred_lines(plane) { /* ... */ }
$.getJSON(sTailFileName, three_hundred_lines);
, если вы не хотите вставлять большую кучу кода.