Wpis z mikrobloga

@progresywnyRegres: Funkcja ma zawsze dostęp do zakresu w którym została zadeklarowana. Oznacza to, że widzi wszystkie zmienne, które były dostępne w momencie jej deklaracji - czyli tutaj zmienna będzie widoczna wewnątrz funckji, bez potrzebny czynienia ją zmienną globalną.
  • Odpowiedz
@progresywnyRegres: Ma, musi mieć. W JS zasięg zmiennych jest funkcyjny, jeśli zmienna nie zostanie znaleziona w danej funkcji przeszukiwany jest zakres wyżej. Gdybyś tutaj zadeklarował tę zmienną wewnątrz funkcji (z użyciem słówka kluczowego var) to wtedy faktycznie po wyjsciu z ciała funkcji zmienna by nie istniała. Ale tutaj jest tak, że ta zmienna nie zostanie znaleziona więc zostanie przeszukany zakres wyżej i tam za każdym razem trafisz na tę samą
  • Odpowiedz
@progresywnyRegres: bo post wykonuje się po tym jak zostanie odczytana zdalna zawartość (czyli połączy się z url i odbierze dane). W tym czasie kod idzie dalej asynchronicznie. Jakbyś dał jakiegoś sleepa to było by po kolej, ale bez sensu :)
  • Odpowiedz
@progresywnyRegres: Bo $.post jest wywoływane asynchronicznie. W przypadku funkcji asynchronicznych JS przechodzi do dalszego wykonywania kodu i wraca do funkcji asynchronicznej wtedy, kiedy coś się stanie. Jest to popularne akurat w wypadku zapytań AJAX, bo wtedy kod nie musi czekać na wykonanie połaczenia i odebranie danych, cała obsługa dzieje się wtedy, kiedy dane dopiero przyjdą.
  • Odpowiedz