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

javascript - Une question à ce sujet

Comme le montre l'image, je voudrais demander à tout le monde, pourquoi le premier paramètre de la fenêtre foo.call() ?

给我你的怀抱给我你的怀抱2663 Il y a quelques jours884

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

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-05 11:08:26

    En fait, la clé du problème est que nous ne comprenons pas le rôle de la fonction call/apply. En termes officiels, cela signifie changer le contexte de portée, mais ici le contexte local est changé en fenêtre. En fait, appeler/appliquer est une méthode pour « tuer quelqu'un avec un couteau emprunté », c'est-à-dire que si vous n'avez pas un certain attribut ou une certaine méthode, et que vous souhaitez ensuite appeler les attributs ou les méthodes d'autres objets, c'est également une méthode d'implémentation de l'héritage d'objets.

    répondre
    0
  • 高洛峰

    高洛峰2017-07-05 11:08:26

    En fait, il n'est pas nécessaire que ce soit Windows, et il est préférable d'utiliser call. Il vous suffit de déclarer var that=this dans f et d'écrire this de la fonction de fermeture comme ça. obtenez les variables d'environnement de la fonction supérieure. Vous ne pouvez qu'être venteux, donc la déclaration est ok. Si vous ne comprenez pas, vous pouvez me demander

    .

    répondre
    0
  • 滿天的星座

    滿天的星座2017-07-05 11:08:26

    S'il s'agit d'un front-end, la fonction a un paramètre invisible this, qui pointe par défaut vers la fenêtre des variables globales.
    Sauf si vous modifiez l'objet pointé par ceci, tel que foo.call (autres objets)
    La phrase originale utilise ce paramètre par défaut
    L'annotation indique clairement que cela pointe vers window

    Je vais écrire quelques phrases supplémentaires, sinon je serai clair

    var foo = function () {
      console.log(this.x);
    }
    foo();为什么this指向window呢
    

    De plus, la sémantique de ceci est de pointer vers l'objet qui appelle cette fonction.
    Chaque fonction nécessite un objet pour appeler
    obj.f() signifie que f est appelé par obj
    Si le front-end ne spécifie pas l'objet appelant, la valeur par défaut est la fenêtre de variable globale pour appeler la fonction

    répondre
    0
  • 怪我咯

    怪我咯2017-07-05 11:08:26

    Lorsque JavaScript est conçu, ceci dans la fonction interne (c'est-à-dire la fonction dans le corps de la fonction) sera lié à l'objet global (c'est-à-dire la fenêtre). Je pense que le commentaire ici foo.call(window) devrait simplement utiliser le langage js pour expliquer pourquoi this.x dans. foo() affichera 10.

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 11:08:26

    Il ne dit pas que le premier paramètre de foo.call doit être window. Le point principal de la question est de comprendre ce qu'est call.

    https://developer.mozilla.org...

    répondre
    0
  • 阿神

    阿神2017-07-05 11:08:26

    Vous pouvez comprendre les fonctions et les différences d'appel, d'application et de liaison

    répondre
    0
  • Annulerrépondre