Warum JavaScript-Wrapper verwenden (in coffeescript hinzugefügt) ".call (this)"


Answers

Auf diese Weise können Sie sicherstellen, dass das kompilierte CoffeeScript einen eigenen Gültigkeitsbereich für Variablennamen hat. Dies hat Vorteile in Bezug auf Effizienz und Einfachheit (Sie wissen, dass das generierte JavaScript nicht auf Variablen stößt, die von anderem Code verwendet werden). Sie können es mit der Option --bare (oder -b ) für den CoffeeScript-Compiler deaktivieren.

Der Grund für den call(this) besteht lediglich darin, sicherzustellen, dass das CoffeeScript dasselbe this wie der Bereich, in dem es sich befindet, da Funktionen normalerweise this Objekt nicht vom umgebenden Kontext erben.

Question

Wenn ich die neueste (1.0) Version von coffee-script verwende, sieht eine einfache Javascript-Ausgabe wie folgt aus (standardmäßig):

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

Was macht .call (this) und was wäre der Grund, es hinzuzufügen?