0

我有两个功能,比方说:

getCustomers() - 获取客户列表 getCustomerDetials() - 获取每个客户的详细信息

我运行getCustomers()并且该功能在其自身内部运行getCustomerDetails()......显然,我需要列出所有客户及其详细信息。

所以,这里是过程。

getCustomers()加载所有客户 ID 的列表并遍历每个客户 ID:

for(i = 0; i < array_count; i++); 

getCustomerDetails(id)对找到的每个客户开火。

getCustomerDetails然后运行它自己的内部循环:

for(i = 0; i < array_count; i++);

循环遍历每个细节。

问题:我有两个相同的 for 循环从父函数和内部运行的函数运行。

基本上,我的循环“i”变量似乎正在更新父循环“i”变量,但它永远不会完成!

我将内部函数的循环“i”变量更改为 i2,一切都恢复正常。

很抱歉解释了很长,但我只是想明确表示这是正常和预期的结果?还是我的代码有问题?

我已经处理过几种语言(我是一位经验丰富的 PHP 和 AS2 程序员),而且我以前从未遇到过这种冲突……尽管如此,我在 JS 方面并不是那么好。

4

1 回答 1

7

我认为在函数内声明的变量保持本地化?

他们是这样; 问题是您没有在函数内声明变量。

使用var关键字声明变量:

for (var i = 0; i < array_count; i++)

如果没有这个关键字,您将使用全局变量。


这应该包含在您的 JavaScript 书籍中。你用的是哪一个?

于 2013-04-02T09:52:46.933 回答