Ruby on rails 3 为什么我的HTML代码中没有我的coffeescript函数?

Ruby on rails 3 为什么我的HTML代码中没有我的coffeescript函数?,ruby-on-rails-3,scope,coffeescript,iced-coffeescript,coffeescript-resources,Ruby On Rails 3,Scope,Coffeescript,Iced Coffeescript,Coffeescript Resources,我在rails 3.2.6项目中使用rails主干、coffeescript gems square=(x)->x*x 警报广场(5) 这是它生成的blog.js.coffee脚本文件: (function(){var square;square=function(x){return x*x;};alert(square(5)); 我需要在另一个视图文件中调用square()方法 我怎么能这么说? 我做错了什么吗?像调用常规JavaScript函数一样调用它: <script>

我在rails 3.2.6项目中使用rails主干、coffeescript gems

square=(x)->x*x
警报广场(5)

这是它生成的blog.js.coffee脚本文件:

(function(){var square;square=function(x){return x*x;};alert(square(5));

我需要在另一个视图文件中调用
square()
方法

我怎么能这么说?
我做错了什么吗?

像调用常规JavaScript函数一样调用它:

<script>    
  square(5)
</script>

广场(5)

像调用常规JavaScript函数一样调用它:

<script>    
  square(5)
</script>

广场(5)

Coffeescript中的所有代码都将在一个自调用匿名函数中

要在文件外部调用它,只需编写:

window.square = (x) -> x * x 
警报(方形(5))
在其他函数中

为了不过度使用窗口,您所能做的最好的事情就是创建一个包含所有变量的应用程序对象

window.App={}
window.App.square=  (x) -> x * x 

然后,
alert(App.square(5))
您在Coffeescript中的所有代码都将在一个自调用匿名函数中

要在文件外部调用它,只需编写:

window.square = (x) -> x * x 
警报(方形(5))
在其他函数中

为了不过度使用窗口,您所能做的最好的事情就是创建一个包含所有变量的应用程序对象

window.App={}
window.App.square=  (x) -> x * x 

然后
alert(App.square(5))

这不会起作用,因为作用域中没有
square
函数。这不会起作用,因为作用域中没有
square
函数。什么是自匿名函数?自调用匿名函数是一个没有名称的函数(因此是匿名函数)这会调用它自己。它用于保护代码不被从函数外部访问。这里有一个关于这一点的特定问题。什么是自匿名函数?自调用匿名函数是一个没有名称的函数(因此是匿名的)这会调用它自己。它用于保护代码不被函数外部访问。这里有一个关于这个的特定问题。