JavaScript hat ein mit Schlüsselwort. Der ursprüngliche Zweck der Anweisung mit der With-Anweisung besteht darin, eine Namespace-Skizzierungsmethode für den schrittweisen Objektzugriff bereitzustellen. Das heißt, im angegebenen Codebereich wird das Objekt direkt über den Knotennamen aufgerufen.
Die Funktion der With -Anweisung besteht darin, die Bereichskette vorübergehend zu ändern und wiederholte Eingänge zu reduzieren.
Seine Syntaxstruktur ist:
mit (Objekt) {// Anweisungen}Geben wir ein praktisches Beispiel:
mit (document.forms []) {name.Value = "Lee King"; Adresse.Value = "Peking"; ZipCode.Value = ""; }Die entsprechende traditionelle Schreibmethode lautet:
document.forms []. name.value = "Lee King"; document.forms []. address.Value = "Peking"; document.forms []. Zipcode.Value = "";
Sie können die Übersicht und Klarheit der With -Aussage sehen, aber es ist schwierig, in der Welt des Code wahre Perfektion zu finden.
Der JS -Dolmetscher muss überprüfen, ob die Variablen im With Block zu dem im With Block enthaltenen Objekt gehören, was die Ausführungsgeschwindigkeit der With -Anweisung erheblich verringert und es schwierig macht, dass JS -Anweisungen optimiert werden. Um Geschwindigkeit und Codevolumen zu berücksichtigen, finden wir eine relativ Kompromisslösung:
var form = document.forms []; Form.Name.Value = "Lee King"; Form.Address.Value = "Peking"; Form.zipcode.Value = "";
Daher sollten wir in zukünftigen effizienten Codeentwicklung die Verwendung von Aussagen so weit wie möglich vermeiden.
Nach dem Testen:
var a = 123; var b = {a: 321}; mit (b) {console.log (a); // 321} var a = 123; var b = {}; Entfernen Sie die A -Eigenschaft in B mit (b) {console.log (a); // 123} aus der Scope -Kette, um sie zu analysierenIn JavaScript sind Funktionen Objekte, und tatsächlich sind alles in JavaScript Objekte. Es gibt eine interne Eigenschaft in der Funktion, die nur für die JavaScript -Engine zugänglich ist, nämlich [[Scope]]. Diese Eigenschaft enthält eine Sammlung von Objekten im Bereich, wenn die Funktion erstellt wird. Diese Sammlung wird als Scope -Kette bezeichnet.
Zum Beispiel der folgende Code:
Funktion add (num1, num2) {var sum = num1 + num2; Rückgabesumme; }Wenn eine Funktion erstellt wird, wird ein globales Objekt in seiner Bereichskette gefüllt, die alle globalen Variablen enthält, wie in der folgenden Abbildung gezeigt:
Wenn die Funktion ausgeführt wird, wird ein aktives Objekt erstellt, das alle lokalen Variablen, benannte Parameter und diese Funktion enthält. Das Objekt wird dann in das vordere Ende der Bereichskette geschoben. Wenn die Funktion ausgeführt wird, wird auch das Objekt zerstört.
Es ist ersichtlich, dass die globale Variable durch das aktive Objekt bis zum Ende der Bereichskette gedrückt wird, weshalb die globale Geschwindigkeit der variablen Zugriffs langsam ist!
mit
Im Allgemeinen werden die Zielfernrohrketten nur von mit Aussagen betroffen und erfassen. Bei der Verwendung erstellt die Funktion ein neues aktives Objekt und drückt es bis zum vorderen Ende, bei dem es sich um das Objekt handelt. Dies bedeutet, dass sich alle lokalen Variablen im zweiten Zielfernrohrkettenobjekt befinden, weshalb Sie es vermeiden sollten.
Das obige ist das Verständnis der mit dem Editor vorgestellten Aussagen in JavaScript. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie weitere Informationen wissen möchten, achten Sie bitte auf die Website wulin.com!