我有两个功能,让我们说:
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方面并不是那么好。
答案 0 :(得分:7)
我认为函数内部声明的变量保持在本地?
他们这样做;问题是你没有在函数内声明你的变量。
使用var
关键字声明变量:
for (var i = 0; i < array_count; i++)
如果没有此关键字,则表示您使用的是全局变量。
这应该包含在您的JavaScript书中。你在用哪一个?