2016-07-08 3 views
0

Vor lassen und es6, wie könnte man block-scoping in Javascript tun? Ich habe eine Funktion, die ich rückwärts kompatibel machen müssen, sondern in vielen pingelig Fragen leite:Begrenzender Gültigkeitsbereich einer Variablen in JavaScript zu blockieren (ohne zu verwenden)

Im Grunde ist es

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

und ich möchte die Funktionalität ohne let imitieren. Mir ist klar, dass es etwas töricht ist, in der Zeit zurückzugehen, aber ich denke, das ist der Weg des geringsten Widerstands.

+2

IIFE, oder benennen Sie die Variable um, oder verwenden Sie Babel. – gcampbell

+0

@gcampbell danke! Wo würde ich die Variable so umbenennen, dass sie auf den Block beschränkt ist? Innerhalb der for-Schleife? – Chad

+0

Vielleicht 'for (var Befehl $ 1 in Befehlen) {}'. Dann werden andere Variablen namens "command" nicht damit kollidieren. Am einfachsten ist es, Babel zu benutzen, das diese Art von Dingen automatisch ausführt. – gcampbell

Antwort

0

Der üblicher Weg ist:

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

Javascript pre ES6 keine Vorstellung von Block Umfang hat. Ich fürchte, das ist nicht möglich. Selbst wenn Sie ein IIFE verwenden würden, wäre die Variable auch außerhalb des Blocks zugänglich, wenn auch nur innerhalb des IIFE.

So funktioniert es

Verwandte Themen