【发布时间】:2014-08-09 02:12:09
【问题描述】:
我有多个 JavaScript 文件。
我有一个在加载时运行的 JS 函数,其中包含多个 AJAX 调用。
每个 AJAX 调用都会执行一个回调(以及增加一个同步计数器)::
myArray.push('somevalue');
这样我就可以验证所有 AJAX 调用(针对此 JS 文件)何时完成。
有没有一种方法可以避免将 myArray 声明为全局变量,同时允许异步回调推送到该数组中?
【问题讨论】:
-
您必须将
myArray传递给每个呼叫。 -
如果您将 myArray 传递给每个调用,它仍然会引用该变量吗?既然JS是传值的,那么异步调用就不会去搜索[reference of]原始变量了?
-
只需创建一个非全局范围,jQuery document.ready 或 IIFE 即可,并将数组设置在与 ajax 调用相同或更高的范围内。
-
如果你传递一个数组,那么值就是一个对数组的引用。
-
您在 cmets here 中有 2 个很好的解决方案,但我的问题是,您为什么担心使这个数组成为全局数组?
标签: javascript jquery ajax scope