2017-10-22 65 views
0

我使用的是for in循环到键迭代中的对象像这样使用用于在里面一类导致基准误差

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

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

其输出

foo 
bar 

然而,当环我把完全相同的代码放在类方法中,我得到

ReferenceError: key is not defined

我所指的类是通过它自己的模块导出的。 (不知道这是否意义重大,因为我无法在线查找关于此行为的任何信息)

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

使用节点U 8.6.0

+0

我想你在读和旧版本的问题之前,我剪辑... –

+0

** ** DOOH编辑问题** –

回答

1

使用让或VAR

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

谢谢!这太容易了。现在,为什么这个课程在课外?你介意在我的答案中指出一些文档吗?当我在一个类之外使用for..in循环时,我从来没有使用过,并且它完美地工作。 –

+1

你应该看看https://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript https://www.w3schools.com/js/js_scope.asp – Sajeetharan

+1

@NativeCoder - 即使你希望它们是全局的,你也应该总是用'var','let'或'const'声明所有的变量。 – nnnnnn

相关问题