2017-10-22 62 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