Heim > Artikel > Web-Frontend > Ausführliche Erläuterung der Verwendung, Vor- und Nachteile anonymer Funktionen in JavaScript (grafisches Tutorial)
Jetzt werde ich Ihnen die Verwendung, Vor- und Nachteile anonymer Funktionen in JavaScript ausführlich erläutern. Lassen Sie mich es jetzt mit Ihnen teilen und es allen als Referenz geben.
Anonyme Funktionen können effektiv sicherstellen, dass Javascript auf der Seite geschrieben wird, ohne globale Variablen zu verschmutzen.
Dies ist sehr effektiv und elegant, wenn Sie Javascript zu einer Seite hinzufügen, die nicht sehr vertraut ist.
1. Was ist eine anonyme Funktion?
Es gibt im Allgemeinen drei Möglichkeiten, eine Funktion in Javascript zu definieren:
Funktionsschlüsselwort-(Funktions-)Anweisung:
function fnMethodName(x){alert(x);}
Funktionsliterale:
var fnMethodName = function(x ){alert(x) ;}
Function()-Konstruktor:
var fnMethodName = new Function('x','alert(x) ;')
Die oben genannten drei Methoden definieren die gleiche Methodenfunktion fnMethodName,
Die erste ist die am häufigsten verwendete Methode, die beiden letzteren kopieren eine Funktion in die Variable fnMethodName, und diese Funktion hat keinen Namen, also einen anonyme Funktion.
Tatsächlich haben einige Sprachen anonyme Funktionen.
2. Der Unterschied zwischen Funktionsliteral und Function()-Konstruktor
Obwohl es sich bei Funktionsliteral um eine anonyme Funktion handelt, ermöglicht die Syntax die Angabe einer beliebiger Funktionsname und kann sich selbst aufrufen, wenn eine rekursive Funktion geschrieben wird, jedoch nicht mit dem Function()-Konstruktor.
var f = function fact(x) { if (x < = 1) return 1; else return x*fact(x-1); };
Function()-Konstruktor Ermöglicht dynamische Erstellung und Kompilierung von Javascript-Code zur Laufzeit. In dieser Hinsicht ähnelt es der globalen Funktion eval().
Der Function()-Konstruktor analysiert den Funktionskörper und erstellt bei jeder Ausführung ein neues Funktionsobjekt. Daher ist die Effizienz des Aufrufs des Function()-Konstruktors in einer Schleife oder einer häufig ausgeführten Funktion sehr gering. Im Gegensatz dazu werden Funktionsliterale nicht jedes Mal neu kompiliert, wenn sie auftreten.
Wenn Sie eine Funktion mit dem Function()-Konstruktor erstellen, folgt diese nicht dem typischen Gültigkeitsbereich. Sie wird immer als Funktion der obersten Ebene ausgeführt.
var y = "global";
function constructionFunction() { var y = "local"; return new Function("return y"); // Warnung: Lokale Variablen können nicht abgerufen werden ( constructionFunction()()); // Ausgabe „global“ und Funktionsschlüsselwortdefinition haben ihre eigenen Eigenschaften und sind viel schwieriger zu verwenden als der Function()-Konstruktor,
daher wird diese Technologie normalerweise selten verwendet.
Der Funktionsliteralausdruck und die Funktionsschlüsselwortdefinition sind sehr ähnlich.
In Anbetracht des vorherigen Unterschieds gibt es zwar Neuigkeiten, dass wörtliche anonyme Funktionen in einigen Webkit-Engines unter OS die Form von Funktionsliteralen.
3. Codemodus der anonymen Funktion Fehlermodus: Es funktioniert nicht und der Browser meldet einen Syntaxfehler.
function(){ alarm(1); }();
Funktionsliteral: Deklarieren Sie zuerst ein Funktionsobjekt und führen Sie es dann aus.
(function(){ Alert(1); } ) ( );
Prioritätsausdruck:( function(){ Alert( 2 ); } ( ) );
void-Operator:void function(){ warning(3 }() Diese drei Methoden sind äquivalent, Hedger Wang bevorzugt aus persönlichen Gründen die 3. Option, aber in tatsächlichen Anwendungen sehe und verwende ich die 1. Option.
4. Anwendung anonymer Funktionen Der erste Satz in „Ein Modulmodus von Javascript“ lautet „Globale Variablen sind der Teufel“ .
Mit dem Schlüsselwort var können anonyme Funktionen effektiv sicherstellen, dass Javascript auf die Seite geschrieben wird, ohne die globalen Variablen zu verschmutzen.
Dies ist sehr effektiv und elegant, wenn Sie Javascript zu einer Seite hinzufügen, die Ihnen nicht sehr vertraut ist.
Tatsächlich werden anonyme Funktionen häufig in YUI und den entsprechenden Paradigmen verwendet und werden auch häufig in anderen Javascript-Bibliotheken verwendet.
Javascript ist der Grundstein der funktionalen Programmierung.
Weitere Informationen finden Sie unter „Writing Beautiful JavaScript Using Functional Programming Techniques“ und „Functional JavaScript Programming Guide“.
Das Obige habe ich für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
Detaillierte Erklärung des Javascript-Prototyps (Grundkurs) Detaillierte Erklärung des JavaScript-Cookies und einfache Beispielanwendung (Bild-Text-Tutorial) Mehrere Möglichkeiten, Code in JavaScript zu kommentieren (Text-Tutorial)Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Verwendung, Vor- und Nachteile anonymer Funktionen in JavaScript (grafisches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!