Есть две вещи, которые вы должны знать:
1: JSON-объект асинхронный, поэтому вызов функции для sessionStatus уже может быть выполнен, когда JSON еще выбирается Следующее будет работать:
function sessionStatus(callback){
$(document).ready(function(){
$.getJSON(scriptRoot + "sessionStatus.php", function(status){
callback(status);
});
});
}
sessionStatus(function(s){alert(s);});
или скорее:
function sessionStatus(callback){
$(document).ready(function(){
$.getJSON(scriptRoot + "sessionStatus.php", callback);
});
}
sessionStatus(function(s){alert(s);});
2: даже если это будет синхронно, вы даете только возвращаемое значение из внутренней функции, поэтому sessionStatus ничего не возвращает. Проверьте этот код (не связанный с вашей вещью JSON):
function do() {
var x = 0;
(function(){
x = 2;
})();
return x;
}
или
function do() {
var x = (function(){
return 2;
})();
return x;
}
Оба возвращают 2. Надеюсь, это немного объясняет.