Ich habe mir eine Weile Sorgen gemacht und ich kann nicht erkennen, was wirklich passiert. Erklärung in Code-Kommentaren. Es gibt 2 Versionen einer Anwendung, eine davon wirft seltsame Ergebnisse und die zweite die erwartete Arbeit.Sehr seltsames Verhalten bei der Verwendung von "var" Schlüsselwort in einer Ajax Anfrage
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
});
Ich bin mir nicht sicher, ob es etwas mit Ajax-Aufruf zu tun hat, oder eine anonyme Funktion, aber das ist nur die Art, wie ich dies so entdeckte ich es dort besser zu halten. Könnte jemand erklären, was ich vermisse? Warum verhält es sich anders, wenn ich das Schlüsselwort var
weglasse? Sie können alles ausprobieren here on jsFiddle
ich nicht das Gefühl, das ist eine exakte Kopie, wie es Frage der Zeit gefragt ist habe ich nicht Idee des Hochziehens. Dies ist eher eine Frage, die fragt "was ist das", nicht "wie es sich verhält". Voting wieder zu öffnen –