Die JavaScript hierdie sleutelwoord
Voorbeeld
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
Wat is dit ?
Die JavaScript- this
sleutelwoord verwys na die voorwerp waaraan dit behoort.
Dit het verskillende waardes, afhangende van waar dit gebruik word:
- In 'n metode,
this
verwys na die eienaar-objek . - Alleen,
this
verwys na die globale voorwerp . - In 'n funksie,
this
verwys na die globale voorwerp . - In 'n funksie, in streng modus,
this
isundefined
. - In 'n gebeurtenis,
this
verwys na die element wat die gebeurtenis ontvang het. - Metodes soos
call()
enapply()
kan nathis
enige voorwerp verwys .
dit in 'n metode
In 'n objekmetode, this
verwys na die " eienaar " van die metode.
In die voorbeeld bo-aan hierdie bladsy, this
verwys na die persoon - objek.
Die persoon - objek is die eienaar van die fullName -metode.
fullName : function() {
return this.firstName + " " + this.lastName;
}
hierdie Alleen
Wanneer dit alleen gebruik word, is die eienaar die globale voorwerp, dus this
verwys na die globale voorwerp.
In 'n blaaiervenster is die globale voorwerp [object Window]
:
Voorbeeld
let x = this;
In streng modus , wanneer dit alleen gebruik word, this
verwys dit ook na die globale voorwerp
[object Window]
:
Voorbeeld
"use strict";
let x = this;
dit in 'n funksie (verstek)
In 'n JavaScript-funksie is die eienaar van die funksie die verstekbinding vir this
.
Dus, in 'n funksie, this
verwys na die globale voorwerp [object Window]
.
Voorbeeld
function myFunction() {
return this;
}
dit in 'n funksie (Streng)
JavaScript streng modus laat nie verstek binding toe nie.
Dus, wanneer dit in 'n funksie gebruik word, in streng modus, this
is undefined
.
Voorbeeld
"use strict";
function myFunction() {
return this;
}
dit in Event Handlers
In HTML-gebeurtenishanteerders, this
verwys na die HTML-element wat die gebeurtenis ontvang het:
Voorbeeld
<button onclick="this.style.display='none'">
Click to
Remove Me!
</button>
Objek Metode Binding
In hierdie voorbeelde this
is die persoon -objek (Die persoon-objek is die "eienaar" van die funksie):
Voorbeeld
const person = {
firstName : "John",
lastName : "Doe",
id : 5566,
myFunction : function() {
return this;
}
};
Voorbeeld
const person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " +
this.lastName;
}
};
Met ander woorde: hierdie.voornaam beteken die voornaam- eienskap van hierdie (persoon) -objek .
Eksplisiete Funksie Binding
Die call()
en apply()
metodes is vooraf gedefinieerde JavaScript metodes.
Hulle kan albei gebruik word om 'n objekmetode te noem met 'n ander objek as argument.
Jy kan meer oor call()
en apply()
later in hierdie tutoriaal lees.
In die voorbeeld hieronder, wanneer persoon1.volleNaam met persoon2 as argument geroep word, this
sal na persoon2 verwys, selfs al is dit 'n metode van persoon1:
Voorbeeld
const person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
const person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2); // Will return "John Doe"