【问题标题】:A little confused about JavaScript variable scope (single level)对 JavaScript 变量作用域(单级)有点困惑
【发布时间】:2013-04-02 09:51:47
【问题描述】:

我有两个功能,比方说:

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 循环从父函数和内部运行的函数运行。

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

我把内部函数的循环“i”变量改成了i2,一切又好了。

抱歉,解释太长了,但我只是想澄清一下,这是正常的预期结果吗?还是我的代码有问题?

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

【问题讨论】:

标签: javascript variables for-loop scope


【解决方案1】:

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

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

使用var 关键字声明变量:

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

没有这个关键字,你使用的是一个全局变量。


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

【讨论】:

  • 啊谢谢.. 只是想确认一下.. PS 我没有 JS 书。只是按照我当前的编程逻辑并尝试通过在线示例、教程和其他东西来调整/学习 JS.. 自从 AS2 以来,我很快就开始了我的 JS 脚,我已经通过书本学习了 w/c,并且已经编程了将近一个十年,与 JS 非常相似..除了其中一些怪癖和诸如此类的东西..我从来没有遇到过这个问题 w/AS2 .. 和 PHP 就这件事。无论如何。再次感谢
  • 我的问题是得到一本书的微妙提示,这样我们就不必以 SO 答案的形式重复其内容。
猜你喜欢
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多