Hvad er "dette" nøgleord i JavaScript?
Da vi ved, at objekter er de grundlæggende byggesten i JavaScript, er der et specielt objekt såvel kaldet 'dette' objekt, og værdien af 'dette' kan ses i hver linje i JavaScript-udførelse, som igen besluttes baseret på hvordan koden er henrettes. I dette emne skal vi lære om “dette” nøgleord i JavaScript.
Betydningen af "dette" søgeord i JavaScript
- Objektet 'dette' i JavaScript har mange vigtige roller og anvendelser. Det bruges primært til at pege på et eksempel på et objekt fra sin egen metode eller konstruktør. Sammen med at pege kan 'dette' også bruges til at holde styr på kontekstudførelse, der er baseret på, hvor funktionen kaldes.
- Den næste ting ved funktionen 'denne' i JavaScript er, at linket til udførelseskontekst kan ændres. Og til sidst kan linket til udførelseskonteksten også oprettes, når det henvises til en tilbagekaldsfunktion, selvom funktionen er defineret inde i konstruktørobjektet.
Hvorfor bruge "dette" søgeord i JavaScript?
- I JavaScript bruges 'dette' nøgleord i mange sammenhænge for at udnytte konteksterne bedst muligt. Grundlæggende bruges 'dette' nøgleord til at henvise til et objekt eller funktion i JavaScript. Som ved selve ordet (dette) kan vi forstå, at det refererer til noget. For at forstå 'dette' bedre på en praktisk måde, kan vi overveje et eksempel, som Mr. X spillede Cricket, og han vandt spillet.
- Så her i stedet for at bruge Mr. X igen, brugte vi 'han', som kun henviser til Mr. X. Det hjælper os med ikke fortsat at nævne de samme ting igen og igen. Samme måde, også i JavaScript, kan vi bruge 'denne' funktion eller objekt til at henvise til en anden funktion eller objekt med værdien, der påberåbes i den funktion eller det objekt. Normalt bruges 'dette' inde i en funktion eller metode, men det kan også bruges uden for funktionen (under globalt omfang).
Hvordan bruges “dette” nøgleord?
- Da vi ved, at JavaScript er et scriptingsprog, så der ikke er behov for en sammenstilling af koder, udføres den i runtime. Det kan udføres direkte af tolken, linje for linje. Og miljøet eller omfanget, i hvilket JavaScript-koder udføres, kaldes "Eksekveringskontekst".
- JavaScript-runtime opretholder en stak af eksekveringskontekster, og den holder den aktuelle stak øverst. Det objekt, der henvises til af "dette", ændres hver gang udførelseskonteksten ændres.
- Vi kan ganske enkelt antage, at når en funktion oprettes på samme tid, oprettes også et nøgleord "dette" (bag scenen), der linker til det objekt, hvor funktionen fungerer. Nøgleordet "dette" fungerer anderledes i JavaScript fra andre programmeringssprog.
Det har forskellige værdier afhængigt af hvor vi bruger det, for eksempel:
- 'dette' henviser til ejerobjektet i en metode.
- 'dette' henviser til det globale objekt i den eneste situation.
- 'dette' refererer også til de globale objekter i en simpel funktion.
- 'dette' henviser til et element i en begivenhed, der modtager begivenheden.
- 'dette' er ikke defineret i en streng funktionsfunktion.
1. Brugt med et felt
Eksempel : Nedenfor henviser 'dette' til et objekt kaldet personen. Og personen er ejeren af metoden fuldnavn.
var employee = (
firstName: “Raju”,
lastName: “Chaudhury”,
id: 123
fullName: function() (
return this.firstName + “ ” + this.lastName;
)
)
Et kort eksempel på et formularfelt:
check to alert this object name
Sæt navn, og kontroller nedenstående radioindstilling for at advare din indrejse
Marker dette for at advare tekstfeltindtastningen
Bemærk, at der indsendes begivenhedshåndterer, mens du åbner formularen for at se handlingen, der er truffet, når du klikker på knappen Send
2. Bruges til at påkalde en konstruktør
Normalt, når vi bruger nøgleordet 'nyt' til at oprette en instans til et funktionsobjekt, bruger vi funktionen som en konstruktør.
I nedenstående eksempel erklærer vi en Bike-funktion og påberåber den derefter som en konstruktør:
function Bike(name)(
this.name = name;
)
Bike.prototype.getName = function()(
return this.name;
)
var bike = new Bike('Pulsar');
console.log(bike.getName());
I ovenstående eksempel er den nye cykel ('Pulsar') en konstruktør af cykelfunktion. Her opretter JavaScript et nyt objekt og sætter 'dette' nøgleord til det nyoprettede objekt. Så nu kan vi påkalde Bike () som funktionen eller som konstruktøren. I tilfælde af at vi fjerner 'nyt' nøgleord, viser det her en fejl som nedenfor:
var bajaj = Bike('Bajaj');
console.log(bajaj.name);
/ * Det vises som TypeError: Kan ikke læse egenskabens 'navn' for udefineret * /
Dette fordi denne funktion i Bike () sættes til det globale objekt, bajaj.name resultater undefined.
For at gøre Bike () -funktionen altid påkaldt ved hjælp af konstruktør, kontrollerer vi ved starten af Bike () -funktionen som nedenfor:
function Bike(name)(
if( ! (this instanceof Bike)(
throw Error(“We should use new operator to call a function”);
)
this.name = name;
)
Der er en metaproperty kendt som "new.target", der gør det muligt at registrere, om en funktion kaldes som en simpel påkaldelse eller konstruktør.
Her kan vi redigere Bike () -funktionen, der bruger new.target metaproperty som nedenfor
function Bike(name)(
if( ! new.target)(
throw Error(“We should use new operator to call a function”);
)
this.name = name;
)
3. Bruges til at returnere den aktuelle klasseinstans
Et klasseudtryk er også en måde at definere en klasse i JavaScript på. Det kan også navngives eller ikke navngives. Den navngivne er den lokale for dens klassekrop og t kan hentes af klasseegenskaber.
/ * eksempel til et ikke navngivet klasseudtryk * /
let Mobile = class (
constructor(cost, weight)(
this.cost = cost;
this.weight = weight;
)
);
console.log(Mobile.name); //Output: Mobile
/ * eksempel på et navngivet klasseudtryk * /
let Mobile = class Mobile2(
constructor(cost, weight)(
this.cost = cost;
this.weight = weight;
)
);
console.log(Mobile.name);
Output: Mobile2
4. Bruges som metodeparameter
Når vi kalder en metode til et objekt, sætter JavaScript 'dette' til det objekt, der ejer metoden.
Eksempel:
var Bike = (
name: 'Pulsar',
getName: function()(
return this.name;
)
)
console.log(bike.getName()); /*Pulsar*/
Her refererer denne indvendige getName () -metode til et cykelobjekt.
Konklusion
Nøgleordet "dette" i JavaScript er et kraftfuldt værktøj, der normalt hjælper udviklerne med at henvise til egenskaberne i specifikke sammenhænge, men til tider kan det også være ganske vanskeligt, når de anvendes gennem de forskellige omfangsniveauer. Værdien af 'dette' kan også indstilles eksplicit med opkaldet (), bind () og anvendes () også. Normalt bestemmes værdien af 'dette' af funktionens eksekveringskontekst. Pilefunktioner binder normalt ikke 'dette', og i stedet for det 'er dette' bundet leksisk.
Anbefalede artikler
Dette er en guide til “dette” nøgleord i JavaScript. Her diskuterer vi vigtigheden og hvordan man bruger “dette” nøgleord i JavaScript sammen med eksemplet. Du kan også se på den følgende artikel.
- Indkapsling i JavaScript
- Indsættelse Sorter i JavaScript
- Palindrome i JavaScript
- JavaScript-kompilatorer
- dette nøgleord i java | Eksempler på dette nøgleord
- Eksempelregler af i Java med eksempel