Javascript 如何使JS对象跨多个文件可用
我是一名js noob,正在开发Rails应用程序。我在我的一个javascript文件中定义了一个有用的JS函数,我希望它可以在其他文件中调用。然而,事实并非如此。这里有一个简单的例子来说明我的情况。。。请注意,我使用的是CoffeeScript(但是AFAIK应该没有什么区别): 这不起作用,在控制台中我得到:Javascript 如何使JS对象跨多个文件可用,javascript,ruby-on-rails,file,scope,coffeescript,Javascript,Ruby On Rails,File,Scope,Coffeescript,我是一名js noob,正在开发Rails应用程序。我在我的一个javascript文件中定义了一个有用的JS函数,我希望它可以在其他文件中调用。然而,事实并非如此。这里有一个简单的例子来说明我的情况。。。请注意,我使用的是CoffeeScript(但是AFAIK应该没有什么区别): 这不起作用,在控制台中我得到:testFoo未定义 这两个文件都包含在页面中,如果我在其中任何一个中添加了警报或控制台日志,页面将按预期响应。我觉得我一定忽略了一些非常明显的事情。。。这是什么?简而言之,试试这个:
testFoo未定义
这两个文件都包含在页面中,如果我在其中任何一个中添加了警报或控制台日志,页面将按预期响应。我觉得我一定忽略了一些非常明显的事情。。。这是什么?简而言之,试试这个:
root = exports ? this
root.foo = -> alert 'Foo'
当你说“这两个都包含在页面上”时,你的意思是你的HTML中有两个脚本元素吗?如果是,请检查顺序和拼写等。@RayToal:CoffeeScript的可能重复项将所有内容包装在
(function(){…})(
包装器中,以防止污染全局命名空间。@muistooshort-Bah,当然了。谢谢,请看下面的帖子:
root = exports ? this
root.foo = -> alert 'Foo'