javascript-tutorial / javascript-tutorial/en.javascript.info

The arrow function.... The lookup of this is made exactly the same way as a regular variable search: in the outer lexical environment.

Ouverte
#2,813 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
HTML
Étoiles
25.5k
Forks
4k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I have tried to test this, i believe arrow function doesn't look up for 'this', in the outer lexical environment, it remembers the 'this' of the place where it is defined.
In the below code: arrow function is passed to another function and that function calls the arrow function at line //. At line // 'this' is 'window', so if arrow function looks up for this in outer lexical environment, then 'this' should be window object, not cl_Test.
Hence, i believe the statement put by you in arrow functions revisited should be changed. Please correct me if i am wrong.

    function cl_Test() {
        // let name = 'Pradeep';
        this.name = 'Pradeep';
        this.age = '31';

        this.arrowF = () => {
            console.log(`${this.name + ' ' + this.age}`);
        };
        this.normalF = function () {
            console.log(name)
        };
        this.arrowF2 = () => {
            console.log(name);
        }
    };

    function fTest(f1) {
        f1();                                                                                              // **
    };

    let o1 = new cl_Test();
    o1.name = 'Sunil';
    o1.age = '34';

    fTest(o1.arrowF);                                                                                  //*
    fTest(o1.normalF);
    fTest(o1.arrowF2);

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par lire la section « arrow functions revisited » référencée dans l’issue et comparez son affirmation sur la manière dont les fonctions fléchées obtiennent this avec l’exemple fourni. Vérifiez le comportement de arrowF et normalF lorsqu’elles sont passées à fTest, puis mettez à jour l’explication afin qu’elle décrive correctement lexical this.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript
Domaine
documentation
Type d'issue
Documentation
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.