Trotz ihrer potenziellen Fallstricke kann sich die „with“-Anweisung von JavaScript unter bestimmten Umständen als wertvoll erweisen.
Eine praktische Verwendung besteht darin, Variablen innerhalb des Blockbereichs zu definieren. JavaScript verfügte anfangs nicht über die Festlegung des Variablenbereichs auf Blockebene, was zu potenziellen Bereichsproblemen in Schleifen führte.
Zum Beispiel:
for (let i = 0; i < 3; ++i) { setTimeout(function() { alert(i); }, 10); }
Ohne ordnungsgemäße Bereichsbestimmungsmechanismen wäre derselbe Wert von i (2) würde von allen drei Funktionen gemeinsam genutzt werden.
Mit „with“ können wir jedoch eine Blockebene erreichen Scoping:
for (var i = 0; i < 3; ++i) { with ({ num: i }) { setTimeout(function() { alert(num); }, 10); } }
Dieser Ansatz erstellt separate Instanzen von num für jede Iteration und löst so das Scoping-Problem.
Während die „with“-Anweisung ein praktisches Werkzeug zum Erstellen blockbezogener Variablen sein kann Aufgrund der Möglichkeit, unerwartetes Verhalten hervorzurufen, sollte es mit Vorsicht verwendet werden. Dennoch kann es, wenn es mit Bedacht eingesetzt wird, eine nützliche Lösung für spezifische Codierungsherausforderungen bieten.
Das obige ist der detaillierte Inhalt vonWann ist die „with'-Anweisung von JavaScript eine legitime Lösung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!