Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 鸡和蛋_Javascript - Fatal编程技术网

Javascript 鸡和蛋

Javascript 鸡和蛋,javascript,Javascript,我有两个非常大的函数,a和b,它们当前位于一个大的JavaScript文件中。我的目标是将每个函数放在一个单独的JavaScript文件中 问题是a调用b,而b调用a,因此,如果我将两个函数都放在不同的文件中,那么其中一个函数将丢失另一个函数的定义,我会收到一条错误消息,结果一切都会中断 当它们在同一个文件中,在同一个闭包下,东西不会因为提升而断裂。如果两个函数都引用了另一个函数,我怎么能将它们放在不同的文件中呢?使用,那么您就知道在调用函数之前脚本是可用的。如果它们属于这样的文件,我不会将它们

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

问题是
a
调用
b
,而
b
调用
a
,因此,如果我将两个函数都放在不同的文件中,那么其中一个函数将丢失另一个函数的定义,我会收到一条错误消息,结果一切都会中断


当它们在同一个文件中,在同一个闭包下,东西不会因为提升而断裂。如果两个函数都引用了另一个函数,我怎么能将它们放在不同的文件中呢?

使用,那么您就知道在调用函数之前脚本是可用的。

如果它们属于这样的文件,我不会将它们拆分为单独的文件。相反,尝试分解函数本身。长文件没有问题,但长函数通常不可维护


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

如果它们将位于不同的文件中,那么它们就不会位于同一个闭包中,因此这就是fire问题


之后,如果您愿意强制执行加载顺序(即先加载A,然后加载B),那么只需让A定义B的存根,然后B将在加载时重新定义它。只要A在B加载之前不执行,您就可以了。

您不允许这样做:

a、 js:

b、 js:


相反,只允许定义函数。在a.js和b.js之后包含的第三个脚本中,调用
a()
b()
。然后
函数a
内部的调用可以调用
函数b
,反之亦然。

这取决于调用函数的时间。如果它们只在彼此内部调用,那么将定义放在两个单独的文件中是没有问题的。我们可以问一下,当它们相互依赖时,为什么需要将它们放在单独的文件中?您的目标可能是将它们放在单独的文件中,但现在的最佳做法是尽量减少HTTP请求,并将它们合并到尽可能少的文件中:
function a() {}
b();
function b() {}
a();