0
在let和es6之前,怎麼能在javascript中進行塊範圍?我有一個功能,我需要向後兼容,但我遇到了很多的挑剔問題:在javascript中禁止變量的範圍(不使用let)
基本上它是
for(let command in commands){
// do something with the command
}
,我想模仿功能讓沒有。我意識到這有點愚蠢,但我認爲這是阻力最小的途徑。
在let和es6之前,怎麼能在javascript中進行塊範圍?我有一個功能,我需要向後兼容,但我遇到了很多的挑剔問題:在javascript中禁止變量的範圍(不使用let)
基本上它是
for(let command in commands){
// do something with the command
}
,我想模仿功能讓沒有。我意識到這有點愚蠢,但我認爲這是阻力最小的途徑。
通常的方法是:
(function() {
for(var command in commands){
// do something with the command
}
})();
的Javascript預ES6沒有塊範圍的任何概念。恐怕這是不可能的。即使你使用的是IIFE,該變量仍然可以在塊外部訪問,儘管只是在IIFE內部。
這就是它是如何工作的
IIFE,或重命名變量,或使用巴貝爾。 – gcampbell
@gcampbell謝謝!我將在哪裏重命名該變量,使其僅限於該塊?在for循環中? – Chad
也許'for(var command $ 1 in commands){}'。然後,其他任何名爲'command'的變量都不會與它發生衝突。最簡單的選擇是使用Babel,它自動完成這種事情。 – gcampbell