我正在 Ruby on Rails 3.2.13 项目中编写 CoffeeScript,但它似乎编译为不正确的 JavaScript。我的代码是:
$('#a').change () ->
$('#b').hide()
coffeescript.org 在线编译器将其编译为:
$('#a').change(function() {
return $('#b').hide();
});
而由于某种原因,当我的项目在开发环境中运行时将其编译为:
(function() {
$('#a').change(function() {
return $('#b').hide();
});
}).call(this);
这背后的原因是什么?它有什么含义吗?
编辑
扩展到 edovic's answer ,我找到了 how can I use option “--bare” in Rails 3.1 for CoffeeScript 的答案
最佳答案
它只是将所有内容包装在一个函数中,以将其“屏蔽”在全局范围之外。您可以手动使用 coffeescript 编译器。正常编译,您将获得底部输出,添加 -bare
标志,您将获得顶部输出。参见 Getting rid of CoffeeScript's closure wrapper
关于javascript - CoffeeScript 的编译方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562639/