2016-07-08 65 views
0

在let和es6之前,怎麼能在javascript中進行塊範圍?我有一個功能,我需要向後兼容,但我遇到了很多的挑剔問題:在javascript中禁止變量的範圍(不使用let)

基本上它是

for(let command in commands){ 
    // do something with the command 
} 

,我想模仿功能讓沒有。我意識到這有點愚蠢,但我認爲這是阻力最小的途徑。

+2

IIFE,或重命名變量,或使用巴貝爾。 – gcampbell

+0

@gcampbell謝謝!我將在哪裏重命名該變量,使其僅限於該塊?在for循環中? – Chad

+0

也許'for(var command $ 1 in commands){}'。然後,其他任何名爲'command'的變量都不會與它發生衝突。最簡單的選擇是使用Babel,它自動完成這種事情。 – gcampbell

回答

0

通常的方法是:

(function() { 
    for(var command in commands){ 
     // do something with the command 
    } 
})(); 
0

的Javascript預ES6沒有塊範圍的任何概念。恐怕這是不可能的。即使你使用的是IIFE,該變量仍然可以在塊外部訪問,儘管只是在IIFE內部。

這就是它是如何工作的