我想将我的javascript代码分解为几个.js文件。每个.js都有代码需要在$(document).ready(..)中。所以在每个文件中都会有一个新的$(document).ready(..)开始。
如何从fileb.js中声明的filea.js函数调用(都在$(document).ready块中)?
如果无法做到这一点,您能提出替代方案吗? 谢谢。
编辑:我想澄清一点,我想避免使用全局范围。我希望使用命名函数作为事件的处理程序,但我真的不知道该怎么做。
答案 0 :(得分:4)
您可以使用
创建一个全局变量window.globalname = localname;
请记住,函数是变量。
答案 1 :(得分:2)
你真的无法摆脱宣布全球化。创建一个单一的全局并不是那么糟糕,你可以命名它下面的所有函数。
将它放在类似main.js的文件中,这样你就可以在这里保留你的共享函数了:
// name this something unique to your page/site/app
var MYAPP = {};
// now we can attach functions to it
MYAPP.funcA = function() { /* ... */ };
MYAPP.funcB = function() { /* ... */ };
然后,在每个匿名函数中,您可以访问MYAPP.funcA(),MYAPP.funcB()等。您还可以动态修改MYAPP以添加函数,属性等。
最后你有一个全局(darn it!),但是如果你已正确命名它,那么你正在创建一个全局命名空间,你的应用程序代码可以安全地存在。
答案 2 :(得分:1)
只要按顺序加载文件(即filea.js
中的函数在fileb.js
调用之前加载,你应该没问题。
为了确保文件首先加载其依赖项,您可以考虑require.js或head.js
我很幸运,后者:http://headjs.com/