在Github上查看CoffeeScript的源代码时,我注意到大多数(如果不是全部)模块定义如下:
(function() {
...
}).call(this);
Run Code Online (Sandbox Code Playgroud)
这种模式看起来像是将整个模块包装在匿名函数中并调用自身.
这种方法的优点和缺点是什么?还有其他方法可以实现相同的目标吗?
如何省略将变量隐藏在全局范围内的自动闭包?
(function() {
// my compiled code
}).call(this);
Run Code Online (Sandbox Code Playgroud)
只是玩弄CoffeeScript + SproutCore,当然,我更愿意保留原样:在这种情况下,没有必要保护任何东西不被覆盖.
我知道我可以使用@或this.在声明,但这不是太优雅.
有人知道如何在Rails 3.1中使用此选项?现在CoffeScript .call(this)在每个文件上放置一个函数,但我想删除它.
编辑:" 无法找到变量"错误与Rails 3.1和Coffeescript "和" 模式为CoffeeScript模块 "有我想要的.我将改变我的全局变量以使用@global范围.