CoffeeScript中的函数
我试图从Javascript转换到CoffeeScript的function
。 这是代码:
function convert(num1, num2, num3) { return num1 + num2 * num3; }
但是,我怎么能在CoffeeScript中做到这一点?
我试图从这样的HTML源代码运行的function:
<script type="text/javascript" src="../coffee/convert.js"></script> <script type="text/javascript"> convert(6, 3, 10); </script>
但它不会工作,我得到一个错误说: ReferenceError: Can't find variable: convert
如何纠正这个?
您需要将转换函数导出到全局范围。
请参阅Coffescript如何从其他资产访问function?
window.convert = (num1, num2, num3) -> num1 + num2 * num3
@lawnsea的答案是伟大的。
我只想补充一些想法。
而不是污染全局命名空间,我宁愿只添加一个variables到window
对象。
window.App = {}
然后,您可以访问全球的App
,并在那里添加所有的东西。 函数convert
现在可以这样表示:
App.convert = convert = (a, b, c) -> a + b * c
然后,在本地范围内调用该函数
convert 1,2,3
现在全球
App.convert 1,2,3
在你的coffeescript文件的顶层, 这个 (aka @ )应该指向窗口 。 所以要附加在这里,你可以使用简写:
@convert = (num1, num2, num3) -> num1 + num2 * num3
请注意,这会污染全局名称空间。 jm发布的解决scheme更为谨慎。 但是你可以replace
window.App = {}
同
@App = {}
使用@的好处是,它指向node.js中的全局 ,因此可以使用相同的代码在浏览器和服务器端环境中公开您的函数。
window.convert = (num1, num2, num3) -> num1 + num2 * num3
你应该检查刚刚发布godfoca这个真棒幻灯片http://www.slideshare.net/godfoca/lets-have-a-cup-of-coffeescript此外,你可以尝试通过网页http:/ / /jashkenas.github.com/coffee-script/
convert = (num1, num2, num3) -> num1 + num2 * num3
convert = (num1, num2, num3) -> num1 + num2 * num3