Heim > Artikel > Web-Frontend > Zusammenfassung mehrerer leicht zu verwechselnder Konzepte in Javascript_Javascript-Kenntnissen
1.
var name = "The Window"; var object = { name : "My Object", getName: function(){ return this.name; } };
Die Methode getName() gibt hier einfach den Wert von this.name zurück. Im Folgenden finden Sie mehrere Möglichkeiten, object.getName()
aufzurufen
Methoden und ihre jeweiligen Ergebnisse.
object.getName(); //"Mein Objekt"
(object.getName)(); //"Mein Objekt"
(object.getName = object.getName)(); //"The Window", im nicht-strikten Modus
Im dritten Fall (object.getName=object.getName); entspricht var fn=(object.getName=object.getName);fn();
2.
function outputNumbers(count){ for (var i=0; i < count; i++){ //alert(i); } var i; //重新声明变量 alert(i); //计数 } outputNumbers(5);
JavaScript sagt Ihnen nie, ob Sie dieselbe Variable mehrmals deklarieren; in diesem Fall ignoriert es einfach nachfolgende Deklarationen
Siehe (es führt jedoch eine Variableninitialisierung in nachfolgenden Deklarationen durch). Anonyme Funktionen können verwendet werden, um das Scoping auf Blockebene nachzuahmen und dieses Problem zu vermeiden.
3.
function(){ //这里是块级作用域 }(); //出错!
Dieser Code verursacht einen Syntaxfehler, da JavaScript das Funktionsschlüsselwort als Anfang einer Funktionsdeklaration und als Funktion
behandelt
Auf Zahlendeklarationen dürfen keine Klammern folgen. Funktionsausdrücken können jedoch Klammern folgen. Um eine Funktionsdeklaration in einen Funktionsausdruck umzuwandeln,
Fügen Sie einfach wie unten ein Paar Klammern hinzu.
(function(){ //这里是块级作用域 })();
4.
function outputNumbers(count){ (function () { for (var i=0; i < count; i++){ alert(i); } })(); alert(i); //导致一个错误! }
In dieser neu geschriebenen Funktion „outputNumbers()“ fügen wir einen privaten Bereich außerhalb der for-Schleife ein. Anonym
Alle in der Funktion definierten Variablen werden am Ende der Ausführung zerstört. Daher kann die Variable i nur innerhalb der Schleife verwendet werden und wird nach der Verwendung zerstört.
Auf die Variablenanzahl kann im privaten Bereich zugegriffen werden, da diese anonyme Funktion ein Abschluss ist und im enthaltenden Bereich auf
zugreifen kann.
alle Variablen.
Diese Technik wird häufig außerhalb von Funktionen im globalen Bereich verwendet, um das Hinzufügen zu vieler Variablen und Funktionen zum globalen Bereich zu begrenzen.
Im Allgemeinen sollten wir versuchen, so wenige Variablen und Funktionen wie möglich zum globalen Bereich hinzuzufügen. In einem großen
Projekt, an dem viele Entwickler beteiligt sind
In einer Anwendung können zu viele globale Variablen und Funktionen leicht zu Namenskonflikten führen. Durch die Erstellung privater Bereiche kann jeder Entwickler
Sie können Ihre eigenen Variablen verwenden, ohne sich Sorgen machen zu müssen, dass der globale Bereich durcheinander gebracht wird. Zum Beispiel:
(function(){ var now = new Date(); if (now.getMonth() == 0 && now.getDate() == 1){ alert("Happy new year!"); } })();
Fügen Sie den obigen Code in den globalen Bereich ein, mit dem Sie bestimmen können, welcher Tag der 1. Januar ist. Wenn er diesen Tag erreicht, wird er verwendet
Der Benutzer zeigt eine Neujahrsgrußnachricht an. Die Variable ist jetzt eine lokale Variable in der anonymen Funktion und wir müssen uns nicht im globalen Bereich
befinden
Erstellen Sie es in .
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.