Maison > Article > interface Web > Analyser le mystère de cela en Javascript
Avant-propos : c'est un mot-clé relativement particulier de JavaScript La large gamme d'applications et la flexibilité de la méthode la rendent puissante, mais en même temps elle. est voué à l'échec. Difficile à utiliser . Quand j’ai commencé à l’apprendre, j’étais très confus, j’ai recherché beaucoup d’informations afin de bien le comprendre. Ensuite, j'ai organisé ce que j'ai appris et je l'ai exprimé d'une manière facile à comprendre. Cela peut être utilisé comme notes d'étude et comme référence pour les enfants dans le besoin^_^
Qu'est-ce que c'est ?
La signification de ce mot-clé est claire et spécifique, c'est-à-dire qu'il fait référence à l' objet actuel. Cela signifie que cela n’est vrai que dans certaines circonstances relatives.
ceci est divisé en trois situations : objet global, objet actuel ou n'importe quel objet ; juger dans quelle situation il se trouve dépend entièrement de la façon dont la fonction est appelée, l'appel de fonction principale en JavaScript. Il existe plusieurs manières :
Appeler en tant que fonction normale
Appeler en tant que méthode objet
Appeler en tant que constructeur Appeler
Utiliser appliquer Ou appeler
1. En tant qu'appel de fonction normal
------C'est notre méthode la plus couramment utilisée, cette méthode d'appel appartient à l'Appel global, cela fait ici référence à l'objet global
function test(){ this.a = 5; alert(this.a); alert(this); } test(); // 5 [object Window]
Comme indiqué ci-dessus : pour une fonction définie globalement, le propriétaire de la fonction est la page actuelle, c'est-à-dire objet window, donc l'objet appelant de example() est Window, donc ceci représente ici Window
Une autre façon de l'écrire :
var a = 5; function test(){ var a = 10; alert(this.a); } test(); //5
Comme indiqué ci-dessus : une variable a est également déclarée dans la fonction test(), mais le résultat de l'appel à test() est 5 , indiquant que la fonction à ce moment-là L'interne this représente l'objet global, qui est Window
peut être écrit d'une autre manière :
var a = 5; function test(){ this.a = 10; } test(); alert(a); //10
comme indiqué ci-dessus : Appelez test() La fonction modifie la valeur de la variable globale a, ce qui signifie qu'elle représente l'objet global à ce moment-là.
2. Appel en tant que fonction objet
------Lorsqu'une fonction est appelée par un objet, cela pointe vers l'objet
var name="张三"; var person={ name:"李四", showName:function(){ alert(this.name); } } person.showName(); //输出 李四 var other=person.showName; other(); //输出 张三
Comme indiqué ci-dessus : le résultat de l'exécution de person.showName() est Li Si, indiquant que ceci dans showName pointe vers la personne à ce moment-là ; >Après avoir attribué person.showName à other, parce que other est une variable globale, elle peut être considérée comme un
attribut
de l'objet window. Ainsi, lorsque vous appelez other(), cela équivaut à appeler window.other(), donc cela pointe vers la fenêtre, et le résultat de sortie est Zhang San Donc, lorsqu'il est appelé en tant qu'objet fonction, this ; pointe vers l'objet de l'appel.
3. Appelez
en tant que constructeur ------Le constructeur doit générer un nouvel objet via cette fonction, et cela pointera vers ce nouvel objet
function animal(){ this.name = "豆豆"; } var dog = new animal(); alert(dog.name); // 输出 豆豆Comme indiqué ci-dessus : générer un objet de type
type d'objet
via le nouveau mot-clé et mettre Il est attribué à chien . Si ce constructeur est exécuté, this dans le constructeur
portée de la fonction pointe vers cet objet, ici il pointe vers dog, donc this.name est égal à dog.name, donc le résultat de sortie Pour Doudou. 4. Utilisez apply ou call pour appeler
------apply() est une méthode de l'objet fonction. Elle applique une méthode d'un objet et en utilise une autre. L'objet remplace l'objet actuel.
var a = "张三"; function test(){ alert(this.a); } var b = {}; b.a = "李四"; b.n = test; b.n(); //李四 b.n.apply(); //张三 b.n.apply(b); //李四Comme indiqué ci-dessus : b.n()----Parce que l'objet appelé est b, this pointe vers b, this. a == b.a , donc le résultat est Li Si
b.n.apply----Lorsque le paramètre de apply() est vide, il n'y a pas d'objet pour remplacer l'objet actuel et l'objet global est utilisé par défaut, donc cela pointe vers window , le résultat est Zhang San
b.n.apply(b)----fait référence au remplacement du pointeur this actuel par b, donc cela pointe vers b, et le résultat est Li Si
(référence à cet article J'ai lu les informations sur Internet et certains livres. S'il y a des erreurs, merci de les signaler et elles seront corrigées à temps. O(∩_∩)O )
Résumé :
Cet article présente JavaScript. Les exemples de la signification de ce mot-clé dans diverses situations sont très simples, ce qui peut aider à approfondir la compréhension. Bien qu'il ne s'agisse que d'un petit concept en JavaScript, nous pouvons l'utiliser pour comprendre l'environnement d'exécution des fonctions en JavaScript. Maîtriser pleinement les connaissances pertinentes à ce sujet nous aidera à écrire facilement des programmes JavaScript
orientés objet. Enfin, merci d'avoir regardé.
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!