鸡肉和鸡蛋

时间:2011-10-13 20:58:39

标签: javascript

我有两个非常大的函数ab,它们目前位于一个大的JavaScript文件中。我的目标是将每个函数放在一个单独的JavaScript文件中。

问题是a拨打bb拨打a,这样如果我将两个功能放在不同的文件中,那么错过了另一个的定义,我得到一条错误信息,事情就破了。

当它们在同一个文件中时,在相同的关闭下,由于提升,事情不会中断。当每个函数引用另一个文件时,如何将这两个函数放在不同的文件中?

4 个答案:

答案 0 :(得分:4)

如果它们将在不同的文件中,那么你不会将它们放在同一个闭包中,这就是火灾问题。

之后,如果您愿意强制执行加载顺序(即首先加载A,B),那么只需要A定义B的存根,然后B将在加载时重新定义它。只要A在B加载之前没有执行,你应该没问题。

答案 1 :(得分:1)

使用Google Loader,然后您就知道在函数调用之前脚本可用。

答案 2 :(得分:1)

如果它们像这样分开,我不会将它们分成单独的文件。相反,尝试自己分解功能。长文件没有问题,但长函数通常无法维护。

除此之外:如果它们是单独的函数,它们是否在同一个文件中并不重要,只要两个文件都被加载,并且在两个文件都加载之前不调用这些函数。

答案 3 :(得分:0)

你不允许这样的事情:

a.js:

function a() {}
b();

b.js:

function b() {}
a();

只允许定义函数。在a.js和b.js之后添加的第三个脚本中,您可以调用a()b()。然后,function a的INSIDE调用可以调用function b,反之亦然。