Pourquoi utiliser l'emballage de la fonction javascript (ajouté en coffeescript) « de .call (this) »

StackOverflow https://stackoverflow.com/questions/4542942

  •  13-10-2019
  •  | 
  •  

Question

Quand j'utilise la dernière (1.0) version de script de café, un simple aspect de sortie javascript comme celui-ci (par défaut):

(function() {
  var a;
  a = 1;
}).call(this);

Qu'est-ce que .call (this) faire et ce serait la raison pour l'ajouter?

Était-ce utile?

La solution

Il est la création d'une fonction, puis se faisant appeler avec la fonction parent / objets champ.

.call et .Appliquer existe différentes méthodes de l'invocation d'une fonction. Vous essentiellement créé une fonction qui ne fait rien, sauf un jeu = 1 dans son propre champ.

En Javascript, vous devez réaliser que chaque fonction est un objet, et this est ce qui fait référence à l'objet / fonction actuelle. En utilisant la .call(this) de this à partir de la fonction et le remplace par celui du contexte d'appel.

Autres conseils

Il est une façon de vous assurer que le CoffeeScript compilé a sa propre portée pour les noms de variables. Cela a des avantages en termes d'efficacité et de simplicité (vous vous connaissez le code JavaScript généré ne sera pas taper du pied sur les variables utilisées par d'autres codes). Vous pouvez le désactiver avec l'option --bare (ou -b) au compilateur CoffeeScript.

La raison de la call(this) est juste pour faire en sorte que le CoffeeScript a la même this que le champ où il est placé, parce que les fonctions ne normalement pas posséderez leur objet this du contexte environnant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top