Maison > Article > interface Web > Comment l'utiliser en js
Qu'est-ce que cela signifie en js ?
Ceci est toujours utilisé en JS. Aujourd'hui, je vais vous parler de ce qui peut facilement dérouter les gens et comment l'utiliser
. cela pointe vers 1, et la fonction ordinaire pointe vers l'appelant de la fonction : un moyen simple est de voir s'il y a un point devant la fonction. Si c'est le cas, pointez sur la valeur dans. devant le point ; 2. La fonction flèche pointe vers le domaine où la fonction est utilisée : Faites attention à comprendre la portée. Seul le {} de la fonction constitue la portée du <.> object ne constitue pas la portée
const obj = { name: 'objName', say() { console.log(this.name); }, read: () => { console.log(this.name); } } obj.say(); // objName obj.read(); // undefined
const obj = { say: function () { setTimeout(() => { console.log(this) }); } }
obj.say(); // obj, ceci fait référence à C'est obj qui le définit
Points de connaissances supplémentaires
La valeur par défaut du navigateur est window
test( //windowfunction test() { console.log(this); }
node.js
console.log(this); // {} function test() { console.log(this); } test(); //global
Prenez deux questions pour vérifier si vous la maîtrisez
Sortie 10, 2
const length = 10; function fn() { console.log(this.length); } const obj = { length: 5, method: function(fn) { fn(); arguments[0](); } }; obj.method(fn, 1);J'étais confus quand j'ai vu cette question pour la première fois, mais maintenant je la comprends enfin . La fonction méthode passe deux paramètres, un paramètre est fn(), fn() est une fonction ordinaire, et cela pointe vers la fonction L'appelant pointe vers le monde global à ce moment (vous pouvez également voir qu'il n'y a pas de point). devant cette fonction), donc le résultat courant est 10. les arguments sont tous des paramètres de la fonction, qui est un objet de classe
array
, arguments[0] () , peuvent être considérés comme des arguments.0 (), la fonction est appelée par des arguments, à ce moment cela fait référence aux arguments, this.length est angument.length, qui est le nombre total de paramètres passés dans 2Remarque : le résultat de l'exécution de l'exemple ci-dessus dans l'environnement de nœud est indéfini 2, const length = 10 est remplacé par global.length = 10 car l'environnement de nœud définit la
variable globale
Quel sera le résultat s'il est modifié comme suit ?
const length = 10; function fn() { console.log(this.length); } const obj = { length: 5, method: function(fn) { fn(); const fun = arguments[0]; fun(); } }; obj.method(fn, 1); 10, 10 example 2 window.val = 1; var obj = { val: 2, dbl: function() { this.val *= 2 val *= 2; console.log(val); console.log(this.val); } } obj.dbl(); // 2 4 var func = obj.dbl; func(); // 8 8
C'est un peu alambiqué, mais c'est facile à comprendre si vous l'analysez étape par étape :
Ce qui précède est ma petite compréhension de cela. Si vous avez des questions sur mon article, n'hésitez pas à communiquer avec moi.
Comment comprendre les bases de JavaScript orientées objet et ces problèmes de pointage
Explication détaillée de la différence entre ceci et événement en JS
Introduction à cela, postuler, appeler et lier en JS
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!