Вы возвращаете массив перед тем, как поместить в него объекты.
Функция обратного вызова, используемая в методе getJSON
, запускается не сразу, а при получении ответа. Поскольку два метода не могут выполняться одновременно, вы всегда выходите из своей функции до того, как функция обратного вызова может быть запущена.
Вы можете получить доступ к результату внутри функции обратного вызова:
<script type="text/javascript">
function performSearch(){
var url = "http://myjsonurl...";
$.getJSON(url, function(response){
var myArray = [];
$.each(response.data.people, function() {
var p = new person(this.name, this.age);
myArray.push(p);
});
alert(myArray.length);
});
}
</script>