![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 15.09.2016 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
jak rozumieć taki błąd:
Cytat Uncaught TypeError: a is not a function at <anonymous>:1:1
------------------ bo poniższe jest ok
Ten post edytował porzeczki 26.01.2017, 21:31:45 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Utworzyłeś funkcję anonimową, wywołałeś ją i przypisałeś jej wynik do zmiennej a, po czym traktujesz tą zmienną jak funkcję.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 28.03.2016 Ostrzeżenie: (0%) ![]() ![]() |
Stworzyłeś dokładniej mówią tzw. funkcję natychmiastową(Immediately-invoked function expression), czyli taką, która od razu zostaje wywołana.
Funkcje możesz tworzyć na kilka sposobów, ale tutaj domyślam się, że chciałeś zrobić coś takiego:
Przy takim zapisie tworzysz tzw. wyrażenie funkcyjne, czyli ogólnie mówiąc funkcję przypisaną do zmiennej a. Nie jest to taki sam zapis jak:
Jedną z najważniejszych różnic jest miejsce faktycznego zdefiniowania funkcji a. W JS pierwszeństwo mają definicje funkcji, a dopiero później deklarowane są zmienne (tzw. hoisting). Twoje rozwiązanie z tzw. funkcją natychmiastową jest często wykorzystywane po to, aby nie zaśmiecać globalnego zakresu zmiennymi, a jednocześnie dzięki tzw. domknięciom można bardzo ładnie ograniczać ilość zmiennych globalnych, w wielu przypadkach nawet tylko do jednej zmiennej. Ten post edytował drogimex 27.01.2017, 23:14:54 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 14:25 |