【问题标题】:Using a for in loop inside a class results in a reference error在类中使用 for in 循环会导致引用错误
【发布时间】:2018-04-02 20:32:33
【问题描述】:

我正在使用for in 循环来迭代对象中的键,就像这样

var Obj = {
    foo: 'bar',
    num: '1234'
}

for(key in Obj){
    console.log(key)
}

哪些输出

foo
bar

但是,当我将完全相同的代码放入类方法中时,我得到了

ReferenceError: key is not defined

我所指的类是通过它自己的模块导出的。 (不确定这是否重要,因为我在网上找不到有关此行为的任何信息)

那么为什么不能在类内部使用 for in 循环呢?

使用 Node V 8.6.0

【问题讨论】:

  • 我认为您在我编辑之前正在阅读旧版本的问题......
  • dooh 编辑问题**

标签: javascript node.js class module for-in-loop


【解决方案1】:

使用 let 或 var

for(let key in Obj){
    console.log(key)
}

【讨论】:

  • 谢谢!那太容易了。现在,为什么这在课堂之外起作用?您介意在您的回答中指出我的一些文档吗?当我在类外使用 for..in 循环时,我从未使用过 let,它运行良好。
  • @NativeCoder - 您应该始终使用 varletconst 声明所有变量,即使您希望它们是全局变量。
  • 同意。我不知道为什么我虽然 for in 循环不需要变量声明。但我不想删除这个问题,因为@Sajeetharan(现在是你自己)应该得到你所获得的声誉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
相关资源
最近更新 更多