javascript - CoffeeScript 的编译方式不同

标签 javascript ruby-on-rails coffeescript

我正在 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/

相关文章:

ruby-on-rails - Rails/ActiveRecord .where 方法命名与 Ruby Gem 类方法的冲突

ruby-on-rails - nginx + passenger + rails 3.1 = 502 坏网关?

ruby-on-rails - 我应该在node.js 还是rails 中实现GCM 服务器?

javascript - JavaScript 中的序数

javascript - 我的 jquery-ui-rails CoffeeScript 无法正常工作

javascript - 循环遍历表格并根据选中的复选框更改 <tr> 背景

javascript - 如何将参数添加到已包含其他参数并且可能包含 anchor 的 URL

javascript - 如何在 QWebView 中启用 localStorage?

javascript - 使用 Dojo 的 Firefox 中出现 NS_ERROR_UNEXPECTED 错误

javascript - 如何使用 javascript 将时间从 24 小时格式转换为 12 小时格式?