我對Javascript中的變量作用域感到困惑。我正在嘗試使用Prototype庫加載數據文件(.json),並使用json-sans-eval解析響應文本。問題是,在我看來,如果我試圖訪問Ajax.Request範圍之外的「dataObj」,數據文件中的內容就會丟失。Javascript可變範圍問題
Javascript中的變量有引用計數。我不明白全局變量'dataObj'怎麼會丟失它的數據。任何提示或幫助?
謝謝!
var dataObj;
function OnLoadHandle() {
new Ajax.Request('data.json',
{
method:'get',
onSuccess: function(transport)
{
var response = transport.responseText || "no response text";
dataObj = jsonParse(response);
console.log(dataObj["[0,0]"]); // OK
},
onFailure: function(){ alert('Something went wrong...') }
});
console.log(dataObj["[0,0]"]); // ERROR
}
這不是範圍,問題是_A_jax是_A_synchronous,第二個'console.log'正在執行*在請求完成之前... – CMS