Heim > Artikel > Web-Frontend > Was ist eine anonyme Funktion in JavaScript?
In diesem Artikel erfahren Sie, was anonyme Funktionen in JavaScript sind. Ich hoffe, dass Sie nach dem Lesen dieses Artikels ein gewisses Verständnis für das Konzept und die Verwendung anonymer Funktionen in JavaScript haben.
Was ist eine anonyme Funktion in JavaScript?
In Front-End-Interviews fragen Interviewer grundsätzlich, was eine anonyme Funktion und was eine Abschlussfunktion ist.
In diesem Artikel wird zunächst erläutert, was anonyme Funktionen sind.
Eine anonyme Funktion ist, wie der Name schon sagt, eine Funktion ohne Namen. Normalerweise lauten die von uns geschriebenen Funktionen wie folgt:
function do(){ // 执行代码 }; // 调用 do();
Diese Schreibweise definiert eine Funktion mit dem Namen do und übergibt die Funktion Name Tätigen Sie den Anruf.
Was wäre ohne einen Namen?
function () { // 执行代码 };
Diese Schreibweise meldet einen Fehler während der Kompilierung:
Uncaught SyntaxError: Unexpected token (
Warum ist das so? Es stellt sich heraus, dass der Browser bei der Syntaxanalyse feststellt, dass diese Funktion überhaupt nicht ausgeführt werden kann.
Warum brauchen wir dann anonyme Funktionen? Wenn es in einer Programmiersprache eine andere Codierungsmethode gibt, wird diese Codierungsmethode definitiv normal ausgeführt. Wie lässt sich die anonyme Funktion ausführen? Schauen Sie sich das folgende Beispiel an:
var do = function () { // 执行代码 }do();
Jeder muss diese Art von Funktion kennen. Tatsächlich besteht diese Schreibweise darin, die anonyme Funktion in die Variable do zu kopieren und die Funktion dann über den Variablennamen auszuführen.
(function(){ // 执行代码 console.log("打印成功"); })();
Was bedeutet der obige Code?
Sie können den obigen Code zunächst in mehrere Teile unterteilen:
Der erste Teil ist die anonyme Funktion in Klammern, der zweite Teil ist die anonyme Funktion mit Klammern und der dritte Teil Teil mit Die am Ende der Ausführung verwendeten Klammern.
Die anonyme Funktion in den Klammern kann so betrachtet werden, dass sie die anonyme Funktion als Variable behandelt und sie dann über die Klammern ausführt.
(function () { // 执行代码 })(); // 相当于 var do = function() { // 执行代码 }; do();
Tatsächlich wird die obige anonyme Funktionsschreibmethode an vielen Stellen verwendet. Einige Toolkits wie JQuery verwenden diese Schreibmethode -Funktionen ausführen?
// 定义一个全局变量a var a = 1; (function() { // 在自执行函数中也创建一个变量a var a = 2; console.log(a); // 2 })(); console.log(a); // 1
Sie können sehen, dass die in der selbstausführenden Funktion gedruckte Zahl 2 ist, während die in der selbstausführenden Funktion gedruckte Zahl 1 ist;
Warum ist das so?
Da es im Programm einen Namen namens Bereich gibt, wird der Bereich der globalen Umgebung als globaler Bereich bezeichnet, der Bereich in der Funktion wird als Funktionsbereich bezeichnet und der Bereich ist hierarchisch, interner Bereich Variablen Auf Variablen im äußeren Bereich kann in der Domäne zugegriffen werden, auf Variablen im inneren Bereich kann jedoch nicht im äußeren Bereich zugegriffen werden.
Wenn auf eine Variable in einem internen Bereich zugegriffen wird, wird zunächst in dem Bereich gesucht, in dem sie sich befindet. Wenn sie nicht gefunden werden kann, wird sie im übergeordneten Bereich gesucht Ich werde noch einmal weiter oben suchen, um den globalen Bereich zu finden. Diese Schicht-für-Schicht-Beziehung ähnelt einer Kette und wird daher als Bereichskette bezeichnet.
Sehen Sie sich den obigen Code noch einmal an: In der selbstausführenden Funktion greift die Funktion console.log auf die Variable a zu. Sie sucht zunächst in ihrem eigenen Bereich und findet die Variable a, sodass der Wert von a ausgegeben wird 2; die globale Umgebung Die Funktion console.log greift auch auf die Variable a zu. Da der externe Bereich nicht auf den internen Bereich zugreifen kann, kann die Variable a, auf die in der globalen Umgebung zugegriffen wird, nur in der globalen Funktionsumgebung nachgeschlagen werden a wird als 1 ausgegeben;
Zusammenfassung: Der Vorteil einer selbstausführenden Funktion besteht darin, sicherzustellen, dass die Variablen in der selbstausführenden Funktion nicht durch andere Umgebungen kontaminiert werden.
Dieser Artikel stammt aus der Spalte js-Tutorial, willkommen zum Lernen!
Das obige ist der detaillierte Inhalt vonWas ist eine anonyme Funktion in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!