JavaScript ceci

Exemple
constante personne = {
prénom : « John »,
nom : « Biche »,
identifiant : 5566,
nomcomplet : fonction() {
retour ce.prénom + » » + ce.nom de famille;
}
} ;
Essayez-le vous-même »
Qu’est-ce que ce?
En JavaScript, le this
mot-clé fait référence à un objet.
Qui l’objet dépend de comment this
est invoqué (utilisé ou appelé).
Le this
mot-clé fait référence à différents objets selon la façon dont il est utilisé :
Dans une méthode objet, this se réfère à la objet. |
Seul, this se réfère à la objet global. |
Dans une fonction, this se réfère à la objet global. |
Dans une fonction, en mode strict, this est undefined . |
Dans un événement, this se réfère à la élément qui a reçu l’événement. |
Des méthodes comme call() , apply() et bind() peut se référer this pour n’importe quel objet. |
Note
this
n’est pas une variable. C’est un mot clé. Vous ne pouvez pas modifier la valeur de this
.
ce dans une méthode
Lorsqu’il est utilisé dans une méthode objet, this
se réfère à la objet.
Dans l’exemple en haut de cette page, this
se réfère à la personne objet.
Parce que le nom et prénom méthode est une méthode de personne objet.
nomcomplet : fonction() {
retour ce.prénom + » » + ce.nom de famille;
}
Essayez-le vous-même »
ce Seul
Lorsqu’il est utilisé seul, this
se réfère à la objet global.
Parce que this
s’exécute dans la portée globale.
Dans une fenêtre de navigateur, l’objet global est [object Window]
:
Dans mode strictlorsqu’il est utilisé seul, this
se réfère également à la objet global:
ce dans une fonction (par défaut)
Dans une fonction, le objet global est la liaison par défaut pour this
.
Dans une fenêtre de navigateur, l’objet global est [object Window]
:
ce dans une fonction (stricte)
Javascript mode strict n’autorise pas la liaison par défaut.
Ainsi, lorsqu’il est utilisé dans une fonction, en mode strict, this
est undefined
.
ce dans les gestionnaires d’événements
Dans les gestionnaires d’événements HTML, this
fait référence à l’élément HTML qui a reçu l’événement :
Exemple
Cliquez pour me supprimer !
Essayez-le vous-même »
Liaison de méthode d’objet
Dans ces exemples, this
est le objet personne:
Exemple
constante personne = {
prénom : « Jean »,
nom : « Biche »,
identifiant : 5566,
maFonction : fonction() {
retour ce;
}
} ;
Essayez-le vous-même »
Exemple
constante personne = {
prénom : « John »,
nom : « Biche »,
identifiant : 5566,
nomcomplet : fonction() {
retour ce.prénom + » » +
ce.nom de famille;
}
} ;
Essayez-le vous-même »
c’est à dire this.firstName est le prénom propriété de ce (l’objet personne).
Liaison de fonction explicite
Le call()
et apply()
Les méthodes sont des méthodes JavaScript prédéfinies.
Ils peuvent tous deux être utilisés pour appeler une méthode objet avec un autre objet comme argument.
L’exemple ci-dessous appelle person1.fullName avec person2 comme argument, ce fait référence à person2, même si fullName est une méthode de person1 :
Exemple
const personne1 = {
nomcomplet : fonction() {
retourne this.firstName + » » + this.lastName ;
}
}
const personne2 = {
prénom: »John »,
nom: « Biche »,
}
// Retourne « John Doe »:
personne1.nomcomplet.appel(personne2);
Essayez-le vous-même »
Fonction d’emprunt
Avec le bind()
méthode, un objet peut emprunter une méthode à un autre objet.
Cet exemple crée 2 objets (personne et membre).
L’objet membre emprunte la méthode fullname à l’objet person :
Exemple
const personne = {
prénom: »John »,
nom: « Biche »,
nomcomplet : fonction () {
retourne this.firstName + » » + this.lastName ;
}
}
membre constant = {
Prénom: »Hege »,
nom : « Nilsen »,
}
let fullName = person.fullName.bind(member);
Essayez-le vous-même »
Ce Priorité
Pour déterminer quel objet this
fait référence à; utilisez la priorité d’ordre suivante.
Priorité | Objet |
1 | lier() |
2 | appliquer() et appeler() |
3 | Méthode objet |
4 | Portée mondiale |
Est this
dans une fonction appelée à l’aide de bind() ?
Est this
dans une fonction appelée à l’aide de apply() ?
Est this
dans une fonction appelée en utilisant call() ?
Est this
dans une fonction objet (méthode) ?
Est this
dans une fonction dans la portée globale.
#JavaScript #ceci