0

我不知道这是否与 IDE 相关,或者纯粹与转译过程有关。我在 Mac 上使用 Webstorm,并安装了 node、npm 和 coffeescript。IDE 正在使用它来转换为 javascript:

//Coffeescript code, simple variable declaration
myamount = 56

//Traspiled javascript generated by CoffeeScript 1.6.3
(function() {
  var myamount;
  myamount = 5;
}).call(this);

任何线索为什么将变量放在匿名函数中?这不是正确的转译。

4

1 回答 1

0

那是为了防止你污染全局命名空间。

如文档中所述 -词法范围和变量安全性

所有 CoffeeScript 输出都包装在一个匿名函数中: (function(){ ... })(); 这个安全包装器与 var 关键字的自动生成相结合,使得意外污染全局命名空间变得极其困难。

于 2013-09-14T10:30:26.770 回答