JavaScript Invocation de la fonction flèche


Exemple

6

Lors de l' utilisation des fonctions de direction this prend la valeur du contexte d'exécution d'enceinte est this (à savoir, this dans des fonctions de direction a une portée lexicale plutôt que la portée dynamique d' habitude). En code global (code qui n'appartient à aucune fonction), ce serait l'objet global. Et cela se maintient, même si vous invoquez la fonction déclarée avec la notation en flèche de l'une des autres méthodes décrites ici.

var globalThis = this; //"window" in a browser, or "global" in Node.js

var foo = (() => this);           

console.log(foo() === globalThis);          //true

var obj = { name: "Foo" };
console.log(foo.call(obj) === globalThis);  //true

Voyez comment this hérite du contexte plutôt que de faire référence à l'objet sur lequel la méthode a été appelée.

var globalThis = this;

var obj = {
    withoutArrow: function() {
        return this;
    },
    withArrow: () => this
};

console.log(obj.withoutArrow() === obj);      //true
console.log(obj.withArrow() === globalThis);  //true

var fn = obj.withoutArrow; //no longer calling withoutArrow as a method
var fn2 = obj.withArrow;
console.log(fn() === globalThis);             //true
console.log(fn2() === globalThis);            //true