【发布时间】:2026-01-15 04:25:01
【问题描述】:
我是一个在 Rails 应用程序上工作的 js 菜鸟。我在我的一个 javascript 文件中定义了一个有用的 JS 函数,我希望它可以在其他文件中调用。然而,事实并非如此。这是我的情况的简化示例...请注意,我使用的是 CoffeeScript(但 AFAIK 应该没有区别):
#file: app/assets/javascripts/foos.js.coffee
testFoo: ->
alert 'Foo'
#file: app/assets/javascripts/bars.js.coffee
jQuery ->
testFoo()
这不起作用,在控制台中我得到:testFoo is not defined。
这两个文件都包含在页面中,如果我在其中任何一个中放置警报或控制台日志,页面都会按预期响应。我觉得我必须在这里忽略一些非常明显的东西......它是什么?
【问题讨论】:
-
当您说“两者都包含在页面中”时,您的意思是您的 HTML 中有两个脚本元素吗?如果是,请检查排序和拼写等。
-
@RayToal:CoffeeScript 将所有内容包装在
(function() { ... })()包装器中,以防止污染全局命名空间。 -
@muistooshort 呸,当然。谢谢。
-
查看以下主题:*.com/questions/4214731/…
标签: javascript ruby-on-rails file scope coffeescript