Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使JS对象跨多个文件可用_Javascript_Ruby On Rails_File_Scope_Coffeescript - Fatal编程技术网

Javascript 如何使JS对象跨多个文件可用

Javascript 如何使JS对象跨多个文件可用,javascript,ruby-on-rails,file,scope,coffeescript,Javascript,Ruby On Rails,File,Scope,Coffeescript,我是一名js noob,正在开发Rails应用程序。我在我的一个javascript文件中定义了一个有用的JS函数,我希望它可以在其他文件中调用。然而,事实并非如此。这里有一个简单的例子来说明我的情况。。。请注意,我使用的是CoffeeScript(但是AFAIK应该没有什么区别): 这不起作用,在控制台中我得到:testFoo未定义 这两个文件都包含在页面中,如果我在其中任何一个中添加了警报或控制台日志,页面将按预期响应。我觉得我一定忽略了一些非常明显的事情。。。这是什么?简而言之,试试这个:

我是一名js noob,正在开发Rails应用程序。我在我的一个javascript文件中定义了一个有用的JS函数,我希望它可以在其他文件中调用。然而,事实并非如此。这里有一个简单的例子来说明我的情况。。。请注意,我使用的是CoffeeScript(但是AFAIK应该没有什么区别):

这不起作用,在控制台中我得到:
testFoo未定义

这两个文件都包含在页面中,如果我在其中任何一个中添加了警报或控制台日志,页面将按预期响应。我觉得我一定忽略了一些非常明显的事情。。。这是什么?

简而言之,试试这个:

root = exports ? this
root.foo = -> alert 'Foo'

当你说“这两个都包含在页面上”时,你的意思是你的HTML中有两个脚本元素吗?如果是,请检查顺序和拼写等。@RayToal:CoffeeScript的可能重复项将所有内容包装在
(function(){…})(
包装器中,以防止污染全局命名空间。@muistooshort-Bah,当然了。谢谢,请看下面的帖子:
root = exports ? this
root.foo = -> alert 'Foo'