Piszę przewodnik po języku JavaScript dla mojego zespołu, abyśmy mogli łatwiej organizować i przekazywać nasze dokumenty. Ale uderzyłem w niewielki guz, do którego odnosi się moje pytanie ...
Jak mam nazwać anonimową funkcję JavaScript, która jest wywoływana natychmiast. Wiem, że mógłbym po prostu nazwać to „funkcją anonimową”, ale chciałbym podkreślić fakt, że jest ona wywoływana natychmiast.
Oto przykład:
var MyVariable = (function(data){
return "another value"
})("some value");
console.log(MyVariable);
// "another value"
javascript
coding-style
terminology
silentBeep
źródło
źródło
Odpowiedzi:
Mają już na to określenie w świecie Javascript. Są one nazywane Wyrażeniami funkcji natychmiast wywołanych (IIFE) .
Co to jest
Funkcje IIFE nie mają nazwy. Zamiast tego są one wykonywane raz, gdy natrafi na nich tłumacz:
Te końcowe nawiasy po zamknięciu nawias klamrowy bloku kodu powiedzieć tłumacza natychmiast wezwać wyrażenie funkcyjne.
Jeśli piszesz deklarację funkcji , musisz dodać operatory grupowania lub nawiasy otaczające funkcję, aby powiedzieć tłumaczowi, aby traktował funkcję jako wyrażenie, które można natychmiast wywołać:
Kiedy są używane
IIFE są używane dla kodu, który musi zostać uruchomiony tylko raz w ramach zadania, a nie wywoływany wielokrotnie.
źródło
var area = ...
nie potrzebujesz „zawijania” nawiasów na funkcji, ponieważ jest to już wyrażenie funkcji z racji tego, że znajduje się po prawej stronie=
. Nawiasy owinięte są potrzebne tylko wtedy, gdy funkcja jest zapisana jako deklaracja funkcji (tj. Bez wiodącegovar area = ...
).