Ten zapis jest kompletnym Przewodnik dla początkujących Do Zamknięcia JavaScript w którym omówimy zmienny dostęp w ramach różnych zakresów.
Przed zanurzeniem się w koncepcji zamknięć JavaScript, najpierw wyjaśnimy, co Zakres leksykalny jest to, że oba warunki są ze sobą powiązane.
Zakres leksykalny w JavaScript
Zmienny zakres zależy od deklaracji w kodzie źródłowym, znanym jako „Zakres leksykalny". Na przykład, w poniższym przykładzie, utworzone „nazwa„Zmienna to„światowy„Zmienna, która oznacza, że można uzyskać do niej dostęp z dowolnego miejsca w programie, na przykład w„ w ramach „displayMessage ()”Funkcja.
Jednakże, "informacje" jest "lokalny„Zmienna, do której można uzyskać dostęp tylko w ramach„displayMessage ()”Funkcja:
Niech nazwa = „Alex”;Wykonanie powyższego kodu wyświetli następujące dane wyjściowe:
Zagnieżdżone zakres leksykalny w JavaScript
Zakres zmiennych można zagnieżdżić za pomocą „Zakres leksykalny”W taki sposób, że funkcja wewnętrzna może mieć dostęp do zmiennych zadeklarowanych w zakresie zewnętrznym.
Rozważ następujący przykład:
funkcja displayMessage ()W tym przykładzie „displayMessage ()”Funkcja ma zmienną lokalną o nazwie„informacje”I zagnieżdżone„pokazywać()”Funkcja, gdzie„pokazywać()”Jest wewnętrzny funkcja, która ma zdolność dostępu do wartości „informacje”Zmienna od Zewnętrzny zakres.
Więc kiedy „displayMessage ()„Funkcja jest wykonywana, wywoła„pokazywać()„Funkcja, która następnie będzie dostępna do„informacje„Zmienna i wyświetl jego wartość na konsoli:
Teraz zmodyfikujemy „displayMessage ()„Metoda i zamiast wywoływania wewnętrznego”pokazywać()„Funkcja, dodamy instrukcję, aby zwrócić„pokazywać()„Obiekt funkcyjny:
funkcja displayMessage ()Ponadto przypisaliśmy wartość zwróconą przez „displayMessage ()”Funkcja„ ”X" zmienny:
niech x = displayMessage ();Na koniec wywołamy „X()„Funkcja, która odnosi się do„pokazywać()”Funkcja:
konsola.log (x ());Możesz zobaczyć z danego wyjścia, wartość zmiennej lokalnej „informacje„Nadal istnieje, które na ogół pozostają w pamięci do wykonywania funkcji, w której jest ona zadeklarowana:
Wydaje się zdezorientowany? To jest magia Zamknięcie które widziałeś w ostatnim przykładzie jako „pokazywać()”Jest funkcją zamknięcia, która utrzymuje zewnętrzny zakres we własnym zakresie.
Co to są zamknięcia JavaScript
Funkcje JavaScript służy również jako „Domknięcia”Ponieważ ciało funkcji ma dostęp do zmiennych zdefiniowanych poza nią. Lub możemy zdefiniować „Zamknięcie”Jako funkcję, która jest funkcją dziecka i może uzyskać dostęp do zmiennych utworzonych w ramach„rodzic”Zakres funkcji.
Teraz sprawdźmy kilka przykładów, aby zrozumieć związek między zmiennymi rozszczepieniami a zamknięciem w JavaScript.
Przykład 1
Ten przykład pokazuje, jak „lokalny" zmienny "informacje”Dostęp do„ w ”pokazywać()„Funkcja tam, gdzie jest tworzona. Pamiętaj, że pozostały skrypt nie może uzyskać do tego dostępu „informacje" zmienny:
Kiedy "pokazywać()”Funkcja jest wykonywana, wyświetli wartość przechowywaną w„informacje" zmienny:
Przykład 2
Teraz zadeklarujemy „informacje" jak "światowy„Zmienna, która jest skierowana w„pokazywać()”Funkcja (mającą inny zakres):
Jako funkcja JavaScript „pokazywać()”Funkcja to„Zamknięcie”, Utrzymuje zakres i stan„informacje" zmienny:
Przykład 3
W innej sytuacji, gdy zmienne są zdefiniowane w zakresie „rodzic”Funkcja,„dziecko„Funkcja może nadal uzyskać dostęp do ich wartości:
Wyjście danego programu oznacza „pokazywać()„Która jest funkcją dziecka, może uzyskać dostęp do„informacje„Zmienna zadeklarowana w„displayMessage ()„Funkcja nadrzędna:
To były wszystkie istotne informacje związane z zamknięciami JavaScript. Możesz dalej badać zgodnie z Twoimi wymaganiami.
Wniosek
Funkcje JavaScript również służą jako Domknięcia ponieważ ciało funkcji ma dostęp do zmiennych zdefiniowanych poza nią. Możemy zdefiniować Zamknięcie Jako funkcja dziecka, która może uzyskać dostęp do zmiennych utworzonych w zakresie funkcji nadrzędnej. Ten zapis jest kompletnym Przewodnik dla początkujących Do Zamknięcia JavaScript w którym omówiliśmy zmienny dostęp w ramach różnych zakresów.