Funktion ist das flexibelste Objekt in JavaScript. Hier erklären wir nur die Verwendung seiner anonymen Funktionen. Anonyme Funktionen beziehen sich auf Funktionen, die keinen Funktionsnamen oder Zeiger angeben. Selbstausführende anonyme Funktionen sind nur eine davon: Selbstausführende Funktion
Das Folgende ist die häufigste selbstausführende Funktion:
// 传统匿名函数 (function() { alert('hello'); })();
Der Ausführungseffekt dieses Codes besteht darin, dass er beim Neuladen der Seite angezeigt wird: „Hallo“
Was veranlasst ihn zur automatischen Ausführung? Schauen Sie sich den folgenden Code an
// 在传统写法上去掉小括号,并在前面加上运算符 ~,!,+,- ~function(){ alert('hello'); }(); !function(){ alert('hello'); }(); +function(){ alert('hello'); }(); -function(){ alert('hello'); }();
Es gibt keinen Unterschied zwischen diesen Schreibmethoden und der oben genannten traditionellen Methode
Ich habe festgestellt, dass die Gemeinsamkeit dieser Schreibmethoden der Operator In ist Tatsache ist, dass die traditionellen Klammern () auch eine Art von Operation sind und vorkommen in: a=b*(c+d),
Operator + an selbst generierte Parameter übergeben = Funktion automatisch ausgeführt? Aber einige Symbole werden nicht unterstützt, wie zum Beispiel „=, *, /“. Der Grund für die Selbstausführung ist immer noch sehr rätselhaft und ich kann im Internet keine vernünftige Antwort finden
Dann habe ich es herausgefunden ein magisches Phänomen. Diese Operatoren können unendlich gestapelt werden. . . . . .
// function前面是特定符号可以无限叠加... ~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~!+-~!+-+-!~~~~~~~~+-!!!!!!+function a(b) { alert('hello'); }();
Das Programm läuft normal!!!!!!
Es gibt jedoch zwei Situationen, in denen ein Fehler gemeldet wird
Wenn drei oder mehr „+“ oder „+“-Zeichen in einer Reihe oder ein „-“-Symbol erscheinen, tritt ein Fehler auf;
Wenn zwei „+“- oder „-“-Symbole in einer Reihe erscheinen und dann weitere Symbole folgen, tritt ein Fehler auf auftreten, wie zum Beispiel „++~“, „--+“ ;
Fehlermeldung: Uncaught ReferenceError: Ungültiger Ausdruck auf der linken Seite in der Präfixoperation (was bedeutet, dass der Ausdruck auf der linken Seite falsch ist)
Dann habe ich dasselbe Symbol verwendet, um eine Variable zu bedienen, und festgestellt, dass es genau dasselbe ist. Dies zeigt möglicherweise bereits, dass es sich um die Operation von JavaScript handelt, die die automatische Ausführung der Funktion anregt, und kann auch so verstanden werden Rufen Sie diese Funktion durch Operation auf!
Die Funktion wird nicht von selbst ausgeführt, sondern die Funktion wird durch Berechnung aufgerufen! , unterstützt aber nur einige Berechnungsmethoden!
Darüber hinaus ist diese selbstausführende Funktion möglicherweise keine anonyme Funktion! Wenn ich mir den obigen Code ansehe, habe ich den Funktionsnamen a in der Funktion nach dem Operator definiert. Es gibt keine Ausnahme, aber es ist nutzlos - -!, dieser a kann immer noch nicht mit anderen Methoden aufgerufen werden, aber ich denke, viele Leute rufen auf it Da es sich um eine anonyme Funktion handelt, stimmt etwas nicht!
Das Obige ist eine kurze Analyse der vom Herausgeber eingeführten Prinzipien der selbstausführenden anonymen Javascript-Funktionen (function() { })(). Ich hoffe, dass sie für alle hilfreich sein wird!
Weitere verwandte Artikel zu den Prinzipien selbstausführender anonymer Javascript-Funktionen (function() { })() finden Sie auf der chinesischen PHP-Website!