Читать книгу JavaScript – Das Handbuch für die Praxis - David Flanagan - Страница 146
5.6.1with
ОглавлениеDie Anweisung with führt einen Codeblock aus, als wären die Eigenschaften eines angegebenen Objekts Variablen im blockbezogenen Geltungsbereich dieses Codes. Sie hat folgende Syntax:
with (Objekt)
Anweisung
Diese Anweisung erstellt einen temporären Geltungsbereich mit den Eigenschaften des Objekts als Variablen und führt dann die Anweisung innerhalb dieses Geltungsbereichs aus.
Im strict-Modus ist die with-Anweisung verboten (siehe 5.6.3) und sollte im nichtstrikten Modus als veraltet betrachtet werden; vermeiden Sie es also, sie einzusetzen, wann immer es möglich ist. JavaScript-Code, in dem with verwendet wird, lässt sich nur schwer optimieren und läuft wahrscheinlich deutlich langsamer als gleichwertiger Code, der ohne with geschrieben wurde.
Üblicherweise wird die with-Anweisung benutzt, um die Arbeit mit tief verschachtelten Objekthierarchien zu erleichtern. Bei clientseitigem JavaScript müssen Sie beispielsweise hin und wieder Ausdrücke wie den folgenden einsetzen, um auf die Elemente eines HTML-Formulars zuzugreifen:
document.forms[0].address.value
Benötigen Sie derartige Ausdrücke häufiger, können Sie with verwenden, um auf die Eigenschaften des Formularobjekts zuzugreifen:
with(document.forms[0]) {
// Jetzt können Sie direkt auf Formularelemente zugreifen. Zum Beispiel:
name.value = "";
address.value = "";
email.value = "";
}
Das verringert den Tippaufwand: Sie müssen den Namen der Formulareigenschaften nicht mehr jeweils document.forms[0] voranstellen. Genauso leicht lässt sich die with-Anweisung natürlich vermeiden, indem man den vorhergehenden Code umformuliert:
let f = document.forms[0];
f.name.value = "";
f.address.value = "";
f.email.value = "";
Wenn Sie mit const oder let oder var eine Variable oder Konstante innerhalb des Körpers einer with-Anweisung deklarieren, wird damit übrigens nur eine gewöhnliche Variable erzeugt und keine neue Eigenschaft innerhalb des angegebenen Objekts definiert.