Heim > Web-Frontend > js-Tutorial > Eine kurze Analyse des Prinzips der selbstausführenden anonymen Javascript-Funktion (function() { })()

Eine kurze Analyse des Prinzips der selbstausführenden anonymen Javascript-Funktion (function() { })()

高洛峰
Freigeben: 2017-01-04 16:06:35
Original
1391 Leute haben es durchsucht

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');
})();
Nach dem Login kopieren

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');
}();
Nach dem Login kopieren

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');
}();
Nach dem Login kopieren

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!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage