Utilisation de ceci : 1. Dans les appels de fonction purs, this est utilisé pour représenter l'objet global ; 2. Lorsque la fonction est appelée en tant que méthode objet, this est utilisée pour représenter l'objet supérieur ; appelé en tant que constructeur, this Utilisé pour représenter de nouveaux objets ; 4. Lorsque apply est appelé, this est utilisé pour représenter le premier paramètre de la fonction apply().
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.
Il s'agit d'un mot clé dans le langage JavaScript.
Il s'agit d'un objet généré automatiquement à l'intérieur du corps de la fonction lorsque la fonction est en cours d'exécution, et ne peut être utilisé qu'à l'intérieur du corps de la fonction.
function test() { this.x = 1; }
Dans le code ci-dessus, lorsque le test de fonction est en cours d'exécution, un objet this sera automatiquement disponible en interne.
Alors, quelle est la valeur de cela ?
Cela a des valeurs différentes selon les différents scénarios d'utilisation de la fonction. En général, il s'agit de l'objet environnement dans lequel la fonction s'exécute. Ce qui suit est une discussion détaillée de son utilisation dans quatre situations.
Scénario 1 : Appel de fonction pur
Il s'agit de l'utilisation la plus courante des fonctions et il s'agit d'un appel global, cela représente donc l'objet global. Veuillez regarder le code suivant, son résultat d'exécution est 1.
var x = 1; function test() { console.log(this.x); } test(); // 1
Cas 2 : Appel en tant que méthode objet
La fonction peut également être appelée en tant que méthode d'un objet, auquel cas cela fait référence à l'objet supérieur.
function test() { console.log(this.x); } var obj = {}; obj.x = 1; obj.m = test; obj.m(); // 1
Cas 3 : Appelez
en tant que constructeur Le soi-disant constructeur est grâce à cette fonction, un nouvel objet peut être généré. Pour le moment, cela fait référence à ce nouvel objet.
function test() { this.x = 1; } var obj = new test(); obj.x // 1
Le résultat courant est 1. Afin de montrer qu'il ne s'agit pas d'un objet global pour le moment, nous apportons quelques modifications au code :
var x = 2; function test() { this.x = 1; } var obj = new test(); x // 2
Le résultat courant est 2, indiquant que la valeur de la variable globale x n'a pas changé du tout.
Quatrième cas apply call
apply() est une méthode de la fonction, et sa fonction est de changer l'objet appelant de la fonction. Son premier paramètre représente l'objet modifié qui appelle cette fonction. Par conséquent, cela fait référence au premier paramètre à ce moment-là.
var x = 0; function test() { console.log(this.x); } var obj = {}; obj.x = 1; obj.m = test; obj.m.apply() // 0
Lorsque le paramètre de apply() est vide, l'objet global est appelé par défaut. Par conséquent, le résultat actuel est 0, ce qui prouve qu'il s'agit de l'objet global.
Si vous modifiez la dernière ligne de code en
obj.m.apply(obj); //1
, le résultat en cours d'exécution devient 1, ce qui prouve que cela représente l'objet obj.
[Apprentissage recommandé : Tutoriel JavaScript avancé]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!