Rodzaje przestrzeni nazw w JavaScript

Rodzaje przestrzeni nazw w JavaScript
JavaScript "Przestrzeń nazw”Jest paradygmatem programowania, który jest wykorzystywany do przypisywania zakresu do identyfikatorów, takich jak zmienne i nazwy funkcji. Jest przyzwyczajony do zapobiegać zderzeniom między zmiennymi i funkcjami tej samej nazwy. Na przykład program JavaScript wymaga utworzenia tej samej zmiennej nazwy w innym kontekście. W tej sytuacji, wykorzystując „Przestrzeń nazw”Izoluje konteksty, umożliwiając użycie tego samego identyfikatora w innych przestrzeniach nazwisk.

Ten post omówi różne typy Przestrzenie nazw W JavaScript. A więc zacznijmy!

Przestrzeń nazw JavaScript

Pojęcie dodawania klas, metod, zmiennych i obiektów wewnątrz pojemnika jest znane jako „Przestrzeń nazw„W JavaScript. Kod, który piszesz w programie JavaScript i predefiniowane metody są przechowywane w „okno„Zmienna, uważana za„Globalna przestrzeń nazw". Ta przestrzeń nazw okna jest wykorzystywana za każdym razem, gdy tworzona jest nowa zmienna. Ponadto przechowywanie dowolnej wartości w nowo utworzonej zmiennej będzie używać jej przestrzeni nazw. Tak działa hierarchia w JavaScript.

Rodzaje przestrzeni nazw w JavaScript

JavaScript obsługuje dwa typy przestrzeni nazw:

  • Statyczny Przestrzeń nazw
  • Dynamiczny Przestrzeń nazw

Omówimy szczegółowo oba wspomniane typy przestrzeni nazw.

Statyczne przestrzeń nazw w JavaScript

Kiedy "Etykieta przestrzeni nazw”Jest zakodowany i zdefiniowany w nim funkcja, jest znana jako„Statyczna przestrzeń nazw". Pozwala na ponowne złożenie przestrzeni nazw; Jednak statyczna przestrzeń nazw będzie zawsze odnosić się do tych samych starych obiektów JavaScript.

Stoatyczne przestrzenie nazw w JavaScript są podzielone na kategorie poniżej podania:

  • Statyczna przestrzeń nazw z Zadanie bezpośrednie
  • Statyczna przestrzeń nazw z Notacja dosłowna obiektu
  • Statyczna przestrzeń nazw z Wzór modułu

Teraz zrozummy funkcjonalność każdego z danych typów statycznej przestrzeni nazw.

Statyczne przestrzeń nazw z bezpośrednim przypisaniem

W "Zadanie bezpośrednie”, Funkcje są zdefiniowane przy użyciu już utworzonej statycznej przestrzeni nazw. Na przykład w poniższym przykładzie utworzymy obiekt o nazwie „student,”, Który działa jak statyczna przestrzeń nazw:

var student =

Po tym zdefiniujemy dwie funkcje „getName ()" I "getage ()”I kojarzyć ich z„student„Przestrzeń nazw:

student.getName = function ()
var name = "Alex";
Nazwa powrotu;
student.getage = function ()
var wiek = 35;
Wiek powrotu;
konsola.Log (uczeń.getName ());
konsola.Log (uczeń.getage ());

Jako funkcje są przypisywane bezpośrednio do „student„Przestrzeń nazw, spowoduje to następujące dane wyjściowe:

Statyczne przestrzeń nazw z notacją dosłowną obiektową

W tego typu statycznym przestrzeni nazw dodawane są funkcje w obrębie Przestrzeń nazw Na Deklaracja obiektu.

W ramach poniżej podania wykorzystaliśmy Notacja dosłowna obiektu zdefiniować statyczną przestrzeń nazw „student”I dodaj„getName ()" I "getage ()„Funkcja w swoim zakresie:

var Student =
getName: function ()
var name = "Alex";
Nazwa powrotu; ,
getage: function ()
var wiek = 35;
Wiek powrotu;
;
konsola.Log (uczeń.getName ());
konsola.Log (uczeń.getage ());

Wyjście

Statyczna przestrzeń nazw z wzorem modułu

JavaScript „Wzór modułu”Wykorzystuje Opakowanie funkcji To zwroty jakiś obiekt. Zwracany obiekt odnosi się do logiki interfejsu publicznego modułu w zakresie globalnego.

Ten typ statycznego przestrzeni nazw wywołuje funkcję, zapisuje zwróconą wartość do zmiennej przestrzeni nazw i blokuje interfejs API modułu w zakresie przestrzeni nazw. Zmienne nie zawarte w wartości zwroty są utrzymywane prywatnie i dostępne tylko dla funkcji, która do nich odnosi się.

Przykład
Teraz zdefiniujemy „student" jak statyczna przestrzeń nazw i owinąć go w funkcji:

var student = (function ()
powrót
getName: function ()
var name = "Alex";
Nazwa powrotu;
,
getage: function ()
var wiek = 35;
Wiek powrotu;

; ) ();
konsola.Log (uczeń.getName ());
konsola.Log (uczeń.getage ());

Wartość zwrócona przez „getName ()" I "getage ()„Metody zostaną zapisane w utworzonej zmiennej przestrzeni nazwy statycznej:

Dynamiczna przestrzeń nazw w JavaScript

Zamiast hardkodowania etykiety przestrzeni nazw, „Dynamiczna przestrzeń nazw" Jest odwołane W obrębie Opakowanie funkcji. Ten typ przestrzeni nazw eliminuje wymóg połączenia wartości zwracanej, aby przypisać te wartości do zdefiniowanej przestrzeni nazw. Jest to głównie wykorzystywane w sytuacjach, w których w różnych przypadkach powstaje wiele niezależnych instancji modułu.

Dynamiczny przestrzeń nazw można zaimplementować w JavaScript, przekazując Przestrzeń nazw jako „argument”Lub definiowanie go z„stosować”Słowo kluczowe.

Zrozumiemy obie procedury jeden po drugim.

Przekazywanie dynamicznej przestrzeni nazw jako argumentu

JavaScript pozwala utworzyć Dynamiczna przestrzeń nazw Przekazując go jako argument do Funkcja samozaparcia. Funkcje te są zdefiniowane za pomocą przekazanego argumentu.

Na przykład utworzymy „student„Przestrzeń nazw i przekazuj ją jako argument”Std". Następnie zdefiniujemy „getName ()" I "getage ()”Funkcje przy użyciu„Std" argument:

var student = ; (funkcja (std)
Std.getName = function ()
var name = "Alex";
Nazwa powrotu;
;
Std.getage = function ()
var wiek = 35;
Wiek powrotu;

)(student);
konsola.Log (uczeń.getName ());
konsola.Log (uczeń.getage ());

Wykonanie powyższego programu wyświetli następujące dane wyjściowe:

Tworzenie dynamicznej przestrzeni nazw z zastosowaniem słowa kluczowym

Kolejna metoda utworzenia Dynamiczna przestrzeń nazw jest używanie „stosować" Słowo kluczowe i przekazuj to jako argument. Po wykonaniu tego dodaj wymagane funkcje za pomocą „Ten”Słowo kluczowe.

Przykład

var student = ; (function ()
Ten.getName = function ()
var name = "Alex";
Nazwa powrotu;
;
Ten.getage = function ()
var wiek = 35;
Wiek powrotu;

).Zastosuj (student);
konsola.Log (uczeń.getName ());
konsola.Log (uczeń.getage ());

Wyjście

To były wszystkie istotne informacje dotyczące typy z Przestrzenie nazw W JavaScript. Możesz dalej badać zgodnie z wymaganiami.

Wniosek

Statyczna przestrzeń nazw typ kody twarde Etykieta przestrzeni nazw i definiuje funkcje wewnątrz i Dynamiczna przestrzeń nazw Typ jest odwołane W obrębie Opakowanie funkcji. W JavaScript statyczne przestrzeń nazw jest tworzona z bezpośrednim przypisaniem, notacją obiektową i wzorem modułu. Natomiast dynamiczna przestrzeń nazw jest definiowana przez przekazanie go jako argumentu lub używając słowa kluczowego zastosowania. W tym poście omówiono typy przestrzeni nazw w JavaScript.