coffeescript编译成js之后在前端用js调用其函数的问题

比如我在coffeescript里写一个函数:

abc=->
    1+1

编译成js后是:

(function() {

    var abc;
    abc = function() {
      return 1 + 1;
    };

}).call(this);

然后我在html里引用编译后的js:

<script src="js/js.js"></script>
<script type="text/javascript">
    alert(abc());
</script>

但是并不能找到abc这个函数
把(function() {...}.call(this)外面包的这层去掉之后才可以。

应该是把abc变成了局部的函数了……
那我应该怎么办?总不能每次编译之后再手动把包裹的.call(this)去掉吧?

ps:它默认的编译方式,这样包裹起来有什么好处?还是说只是适用于nodejs的时候有好处?

查看回复