Utilisation de this - Questions à ce sujet en Javascript Lorsqu'une fonction est appelée comme méthode d'un objet, cela fait référence à l'objet supérieur.
淡淡烟草味
淡淡烟草味 2017-06-14 10:54:15
0
4
703

J'ai vu le deuxième environnement d'utilisation lorsque le maître l'a introduit, le texte original est ici :
http://www.ruanyifeng.com/blo...
L'objet ici devrait être ceci ? Si oui, pourquoi est-ce le moins congruent ?

function test(){
    console.log(this.x);
  }
  var o = {};
  o.x = 1;
  o.m = test;
   console.log(o.m());
   console.log(o===this);

Les sorties sont :
1
faux

淡淡烟草味
淡淡烟草味

répondre à tous(4)
过去多啦不再A梦

This===fenêtre en vue globale

漂亮男人

Lorsque console.log() est exécuté dans l'environnement global, cela pointe bien sûr vers la fenêtre
cela pointe vers l'environnement d'exécution actuel de la fonction

 ;
洪涛

o.m() lie implicitement ceci à l'objet o
Dans la portée globale, cela pointe vers l'objet global

仅有的幸福

N'oubliez pas qu'il existe une autre méthode d'appel func.call(context, x, m). Les deux méthodes ci-dessus ne sont que du sucre syntaxique. Vous pouvez utiliser la méthode "code de conversion" telle que :

.
function test(){
    console.log(this.x);
  } 

équivaut à

function test(){
    console.log(this.x);
  }
test.call(undefined)

Logiquement parlant, l'imprimé ceci devrait être indéfini
Mais il y a une règle dans le navigateur :

Si le contexte que vous transmettez est nul ou indéfini, alors l'objet window est le contexte par défaut (le contexte par défaut en mode strict est indéfini)
Donc, ceci ci-dessus devrait correspondre à window.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal