我在test.js中有以下Coffeescript
yo () -> console.log("yo")
通过coffee -o public / javascripts / -cw public / coffeescripts /编译时,我得到public / javascripts / test.js:
// Generated by CoffeeScript 1.4.0
(function() {
var yo;
yo = function() {
return console.log('yo');
};
}).call(this);
我正在尝试以通常的方式在HTML文件中包括以下内容:
<script src="/javascripts/test.js" type="text/javascript"></script>
<script type='text/javascript'>
//<![CDATA[
$(function() {
alert('before yo');
yo();
alert('after yo');
});
//]]>
</script>
但是,我一直收到“未捕获的引用错误:未定义”。实际使用Coffeescript生成的javascript的过程是什么?
最佳答案
在CoffeeScript文件中,yo
是局部变量。它不是全局变量。如果要从另一个JavaScript文件或HTML文件中的JavaScript使用该变量,则需要将yo
设置为全局变量。
您可以在CoffeeScript文件中执行以下操作:
yo = -> ...
# either
@yo = yo
# or
window.yo = yo