我对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