Martwię się o to od jakiegoś czasu i nie mogę zrozumieć, co się naprawdę dzieje. Wyjaśnienie w komentarzach do kodu. Istnieją dwie wersje aplikacji, jedna z nich rzuca dziwne wyniki, a druga wykonuje oczekiwaną pracę.Bardzo dziwne zachowanie przy użyciu słowa kluczowego "var" w żądaniu ajaxowym
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
});
Nie jestem pewien, czy to ma coś wspólnego z wywołania ajax lub anonimowej funkcji, ale jest to po prostu sposób odkryłem to, więc lepiej trzymać go tam. Czy ktoś mógłby wyjaśnić, czego mi brakuje? Dlaczego zachowuje się inaczej, gdy anuluję słowo kluczowe var
? Możesz wypróbować wszystko, co trzeba: here on jsFiddle
nie czuję ten jest dokładną kopią jak to pytanie zadawane w czasie I nie każdy ma pomysł podnoszenia. Jest to raczej pytanie, które pyta "co to jest", a nie "jak się zachowuje". Głosowanie na ponowne otwarcie –