Typer navneområder i JavaScript

Typer navneområder i JavaScript
JavaScript Navneområde”Er et programmeringsparadigme som brukes til å tildele omfang til identifikatorene som variabler og funksjonsnavn. Det er vant til forhindre kollisjoner mellom de samme navngitte variablene og funksjonene. For eksempel krever et JavaScript -program å lage samme navnevariabel i en annen sammenheng. I denne situasjonen, å bruke “Navneområde”Isolerer kontekstene, og tillater den samme identifikatoren å brukes i andre navnefelt.

Dette innlegget vil diskutere forskjellige typer av Navnefelt I JavaScript. Så la oss starte!

JavaScript navneområde

Konseptet med å legge til klasser, metoder, variabler og objekter i en beholder er kjent som "Navneområde”I JavaScript. Koden du skriver i et JavaScript -program og de forhåndsdefinerte metodene lagres i "vindu”Variabel, betraktet som en“Globalt navneområde“. Dette vinduet navneområdet brukes når det opprettes en ny variabel. Å lagre enhver verdi i den nyopprettede variabelen vil også bruke navneområdet. Slik fungerer hierarkiet i JavaScript.

Typer navneområder i JavaScript

JavaScript støtter to typer navnefelt:

  • Statisk Navneområde
  • Dynamisk Navneområde

Vi vil diskutere begge de nevnte navnefeltetypene i detalj.

Statisk navneområde i JavaScript

Når en "Navneområde”Er hardkodet og en funksjon er definert inni den, den er kjent som“Statisk navneområde“. Det tillater omfordeling av navnefeltet; Imidlertid vil et statisk navneområde alltid referere til de samme gamle JavaScript -objektene.

De statiske navneområdene i JavaScript er delt inn i de undergitte kategoriene:

  • Statisk navneområde med Direkte tildeling
  • Statisk navneområde med Objekt bokstavelig notasjon
  • Statisk navneområde med Modulmønster

La oss nå forstå funksjonaliteten til hver av de gitte typene statiske navneområder.

Statisk navneområde med direkte oppdrag

I “Direkte tildeling”, Funksjoner er definert ved hjelp av det allerede opprettet statiske navneområdet. I det følgende eksempel vil vi for eksempel opprette et objekt som heter "student,”Som fungerer som et statisk navneområde:

var student =

Etter å ha gjort det, vil vi definere to funksjoner “getName ()”Og“Getage ()”Og knytte dem til“student”Navnområde:

student.getName = funksjon ()
var name = "Alex";
Returnavn;
student.getage = funksjon ()
var alder = 35;
Returalder;
konsoll.Logg (student.getName ());
konsoll.Logg (student.getage ());

Ettersom funksjoner blir direkte tilordnet "student”Navneområde, det vil resultere i følgende utgang:

Statisk navneområde med objekt bokstavelig notasjon

I denne typen statiske navneområder blir funksjoner lagt til i navneområde Objektserklæring.

I det undergitte programmet har vi brukt objekt bokstavelig notasjon å definere et statisk navneområde “student”Og legg til“getName ()”Og“Getage ()”Funksjon innenfor dets omfang:

var student =
getName: funksjon ()
var name = "Alex";
Returnavn; ,
getage: funksjon ()
var alder = 35;
Returalder;
;
konsoll.Logg (student.getName ());
konsoll.Logg (student.getage ());

Produksjon

Statisk navneområde med modulmønster

JavaScript “modulmønster”Bruker en Funksjonsinnpakning at Returnerer an gjenstand. Det returnerte objektet refererer til logikken i modulen offentlig grensesnitt innenfor det globale omfanget.

Denne typen statiske navneområder påkaller funksjonen, sparer den returnerte verdien til navneområdet og låser modulen API i navneområdet. Variablene som ikke er inkludert i returverdien, holdes private og bare tilgjengelige for funksjonen som refererer til dem.

Eksempel
Vi vil nå definere “student" som en Statisk navneområde og pakk den inn i en funksjon:

var student = (funksjon ()
komme tilbake
getName: funksjon ()
var name = "Alex";
Returnavn;
,
getage: funksjon ()
var alder = 35;
Returalder;

; ) ();
konsoll.Logg (student.getName ());
konsoll.Logg (student.getage ());

Verdien som returneres av “getName ()”Og“Getage ()”Metoder vil bli lagret i den opprettede statiske navneområdet variabel:

Dynamisk navneområde i JavaScript

I stedet for å hardkoding av et navneområde, en "Dynamisk navneområde" er referert innen Funksjonsinnpakning. Denne typen navneområder eliminerer kravet om å kombinere returverdien for å tilordne disse verdiene til det definerte navneområdet. Det brukes mest i situasjoner der flere uavhengige forekomster av en modul opprettes i forskjellige tilfeller.

Dynamisk navneområde kan implementeres i JavaScript ved å passere navneområde som en “argument”Eller definere det med“søke om”Nøkkelord.

La oss forstå begge prosedyrene en etter en.

Passerende dynamisk navneområde som et argument

JavaScript tillater deg å lage en Dynamisk navneområde ved å gi den som en argument til Selvinvokkefunksjon. Disse funksjonene er definert ved hjelp av det passerte argumentet.

For eksempel vil vi lage en "student”Navneområde og passere det som et argument”std”. Etter det vil vi definere “getName ()”Og“Getage ()”Funksjoner ved å bruke“std”Argument:

var student = ; (funksjon (std)
std.getName = funksjon ()
var name = "Alex";
Returnavn;
;
std.getage = funksjon ()
var alder = 35;
Returalder;

)(student);
konsoll.Logg (student.getName ());
konsoll.Logg (student.getage ());

Utførelse av det ovennevnte programmet vil vise følgende utgang:

Opprette dynamisk navneområde med bruk nøkkelord

En annen metode for å lage en Dynamisk navneområde er å bruke “søke omnøkkelord og gi det som et argument. Etter å ha gjort det, legg til de nødvendige funksjonene med "dette”Nøkkelord.

Eksempel

var student = ; (funksjon ()
dette.getName = funksjon ()
var name = "Alex";
Returnavn;
;
dette.getage = funksjon ()
var alder = 35;
Returalder;

).søk (student);
konsoll.Logg (student.getName ());
konsoll.Logg (student.getage ());

Produksjon

Det var all viktig informasjon om Typer av Navnefelt i JavaScript. Du kan videre forske etter behov.

Konklusjon

De Statisk navneområde type Hardkoder de Navneområde og definerer funksjoner innen, og Dynamisk navneområde Type er referert innen Funksjonsinnpakning. I JavaScript opprettes det statiske navneområdet med direkte tildeling, objektnotasjon og modulmønster. I kontrast er et dynamisk navneområde definert ved å gi det som et argument eller bruke Apply -nøkkelordet. Dette innlegget diskuterte hvilke typer navneområder i JavaScript.