【发布时间】:2015-08-30 08:41:51
【问题描述】:
我已经为此担心了一段时间,但我无法意识到真正发生了什么。代码 cmets 中的解释。一个应用程序有 2 个版本,其中一个会抛出奇怪的结果,而第二个会完成预期的工作。
var id = "test1";
$.post("http://fiddle.jshell.net/echo/json/", {"data": "data"}, function(a) {
alert(id); // will throw undefined
var id = "test2";
alert(id); // will throw "test2" as expected
});
$.post("http://fiddle.jshell.net/echo/json/", {"data": "data"}, function(a) {
alert(id); // will throw "test1" as expected
id = "test2";
alert(id); // will throw "test2" as expected
});
我不确定它是否与 ajax 调用或匿名函数有关,但这正是我发现它的方式,所以我最好保留它。有人可以解释我错过了什么吗?为什么当我省略 var 关键字时它的行为会有所不同?大家可以试试here on jsFiddle
【问题讨论】:
-
我不觉得这是一个完全重复的问题,因为这是及时提出的问题,我对吊装没有任何想法。这更像是一个问“它是什么”的问题,而不是“它的行为方式”。投票重新开放
标签: javascript ajax variables var