Maison  >  Questions et réponses  >  le corps du texte

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.

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

淡淡烟草味淡淡烟草味2708 Il y a quelques jours676

répondre à tous(4)je répondrai

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-14 10:56:15

    This===fenêtre en vue globale

    répondre
    0
  • 漂亮男人

    漂亮男人2017-06-14 10:56:15

    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

     ;

    répondre
    0
  • PHP中文网

    PHP中文网2017-06-14 10:56:15

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

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-06-14 10:56:15

    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.

    répondre
    0
  • Annulerrépondre