Es ist diese blinde und unbeschriebene Forschung und Tests, die mich in Ohnmacht machte. Ist es notwendig, dies zu tun? Tatsächlich müssen nach dem Verständnis der Prinzipien nicht so viele Tests durchgeführt werden und dann die Regeln zeichnen. Die ECMascript -Regeln wurden definiert.
Die Regel von VAR lautet: Verwenden Sie Var, um eine Variable zu deklarieren, die eine interne Variable ist. Andernfalls soll die globale Variable zuerst aufgerufen werden, unabhängig davon, wie viele Funktionen von Funktionen sind.
Die Regel davon ist: Dies zeigt in der Methodenfunktion immer auf sich selbst, und dies zeigt in der gewöhnlichen Funktion immer auf Domwindow.
// GodDamntest1function foo () {var a = 123; // Lokale Variable, globale Variablen aller Unterfunktionen this.a = 456; // Objekteigenschaft (function () {alert (a); // 123, Global Alert (this.a); // undefinierte, normale Funktion, dieser Punkt zu Domwindow}) (); } var f = new foo (); // GODDAMNTEST2FUNCTION foo () {var a = 123; this.a = 456; (Funktion (a) {// Lokale Deklarationswarnung (a); // 456, das globale wird durch eine von der Funktion deklarierte lokal deklarierte}) (this.a); } var f = new foo (); // GodDamntest3Function foo () {var a = 123; this.a = 456; (function () {alert (a); // 123, global alert (this.a); // undefined, domwindow this.b = 789; // window.b = 789}) (); (function () {alert (this.b); // 789, window.b}) (); } var f = new foo (); (function () {alert (this.b); // 789, window.b}) (); // GodDamntest4Function foo () {(function () {this.b = 789; // window.b = 789}) (); (function () {alert (this.b); // 789, window.bvar b = 0; alert (b); // 0, ein solcher Test wurde geschrieben!}) (); } var f = new foo (); (function () {alert (this.b); // 789, window.balert (b); // 789, window.b}) ();Überraschenderweise führte der letzte Alarm (b) immer noch zu 789. // überhaupt keine Überraschung!
// GODDAMNTEST5FUNCTION foo () {(function () {this.b = 789; // window.b = 789}) (); (function () {alert (this.b); // 789, window.balert (b); // undefined, global var b = 0; alert (b); // 0, es gibt auch einen solchen Test!}) (); } var f = new foo (); (function () {alert (this.b); // 789, window.balert (b); // 789, window.b}) ();PS: JS -Methode zum Löschen lokaler Variablen
alert ('value:'+str+'/type:'+typeof (str)) // Beziehen Sie sich vor der Deklaration der Variablen auf var str = "dd"; alert ('Wert:'+str+'/type:'+typeof (STR)) // nach der Deklaration und Zuweisung der Variablen, verwiesen auf Str = und -und -definiert; // Die lokale variable Warnung löschen ('Wert:'+str+'/type:'+typeof (str)) // Nach dem Abbrechen der Variablen siehe STR = undefiniert, wie die erste wie die ersteDie oben genannte ist die neueste Analyse von JS Global Variablen und lokalen Variablen, die Ihnen vom Herausgeber vorgestellt wurden. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!