Der Unterschied zwischen JavaScript-Funktionsaufrufen mit und ohne Klammern
Verwandte Tags:1. JavaScript-Beispiel
2. Prototypen und Vererbung in JavaScript
Einleitung: function fun() { return 1; } var a = fun; var b = fun(); In JavaScript bezeichnen wir den folgenden Code als Funktion: function fun() { return 1; } Eine Funktion ist ein Referenztyp namens function, daher ist die Funktion ein Objekt. Das Objekt wird im Speicher abgelegt, und der Funktionsname ist ein Zeiger auf dieses Objekt. var
function fun ( ) {
return 1 ;
}
var a = fun;
var b = fun( );
In JavaScript bezeichnen wir den folgenden Code als Funktion:
function fun ( ) {
return 1 ;
}

Eine Funktion ist eine Instanz eines Referenztyps namens function, daher ist eine Funktion ein Objekt. Das Objekt wird im Speicher abgelegt, und der Funktionsname ist ein Zeiger auf dieses Objekt.
var a = fun bedeutet, dass der Zeiger des Funktionsnamens fun in die Variable a kopiert wird, aber das bedeutet nicht, dass die Funktion selbst kopiert wird.
Das heißt: a ist die Funktion fun, b ist 1
Wenn dem Funktionsnamen Klammern folgen, bedeutet dies, dass der Code in der Funktion (der Code in den geschweiften Klammern) sofort aufgerufen (ausgeführt) wird.
【JavaScript-Funktionsaufrufe mit und ohne Klammern】
Ohne Klammern wird der Funktionsname als Zeiger der Funktion verwendet. Der Name einer Funktion ist der Zeiger der Funktion. In diesem Fall wird das Ergebnis der Funktion nicht ermittelt, da der Funktionskörpercode nicht ausgeführt wird. Es wird lediglich die Adresse übergeben, an der sich der Funktionskörper befindet, damit dieser bei Bedarf gefunden und ausgeführt werden kann.
Beispiel:
window.onload = init ;
Die init-Funktion wird beim Ausführen dieser Codezeile nicht ausgeführt. Wenn der Browser das Dokument lädt, wird diese Anweisung geladen, und es wird festgelegt, welche Funktion nach dem Laden des Dokuments ausgeführt werden soll. Sie wird jedoch zu diesem Zeitpunkt noch nicht ausgeführt – erst wenn das gesamte Dokument geladen ist, wird init() über den init-Zeiger ausgeführt.
Hinweis: Teile des Inhalts dieses Artikels stammen aus folgenden Quellen:
https://www.zhihu.com/question/31044040
http://blog.csdn.net/yyx19941129/article/details/49642515
Autor: jiankunking Quelle: http://blog.csdn.net/jiankunking
Urheberrechtshinweis: Der Inhalt dieses Artikels wurde von mit Echtnamen registrierten Benutzern der Alibaba Cloud beigetragen. Das Urheberrecht liegt beim ursprünglichen Autor. Die Alibaba Cloud Developer Community besitzt kein Urheberrecht und übernimmt keine entsprechende rechtliche Verantwortung. Für detaillierte Regelungen siehe „Alibaba Cloud Developer Community-Nutzungsvereinbarung“ und „Alibaba Cloud Developer Community-Richtlinien zum Schutz geistigen Eigentums“. Wenn Sie in dieser Community Inhalte finden, die im Verdacht stehen, Plagiate zu sein, füllen Sie bitte das Beschwerdeformular für Urheberrechtsverletzungen aus. Nach Überprüfung wird diese Community die angeblich rechtsverletzenden Inhalte umgehend löschen.
2. Prototypen und Vererbung in JavaScript
Einleitung: function fun() { return 1; } var a = fun; var b = fun(); In JavaScript bezeichnen wir den folgenden Code als Funktion: function fun() { return 1; } Eine Funktion ist ein Referenztyp namens function, daher ist die Funktion ein Objekt. Das Objekt wird im Speicher abgelegt, und der Funktionsname ist ein Zeiger auf dieses Objekt. var
function fun ( ) {
return 1 ;
}
var a = fun;
var b = fun( );
In JavaScript bezeichnen wir den folgenden Code als Funktion:
function fun ( ) {
return 1 ;
}

【JavaScript-Funktionsaufrufe mit und ohne Klammern】
Eine Funktion ist eine Instanz eines Referenztyps namens function, daher ist eine Funktion ein Objekt. Das Objekt wird im Speicher abgelegt, und der Funktionsname ist ein Zeiger auf dieses Objekt.
var a = fun bedeutet, dass der Zeiger des Funktionsnamens fun in die Variable a kopiert wird, aber das bedeutet nicht, dass die Funktion selbst kopiert wird.
Das heißt: a ist die Funktion fun, b ist 1
Wenn dem Funktionsnamen Klammern folgen, bedeutet dies, dass der Code in der Funktion (der Code in den geschweiften Klammern) sofort aufgerufen (ausgeführt) wird.
【JavaScript-Funktionsaufrufe mit und ohne Klammern】
Ohne Klammern wird der Funktionsname als Zeiger der Funktion verwendet. Der Name einer Funktion ist der Zeiger der Funktion. In diesem Fall wird das Ergebnis der Funktion nicht ermittelt, da der Funktionskörpercode nicht ausgeführt wird. Es wird lediglich die Adresse übergeben, an der sich der Funktionskörper befindet, damit dieser bei Bedarf gefunden und ausgeführt werden kann.
Beispiel:
window.onload = init ;
Die init-Funktion wird beim Ausführen dieser Codezeile nicht ausgeführt. Wenn der Browser das Dokument lädt, wird diese Anweisung geladen, und es wird festgelegt, welche Funktion nach dem Laden des Dokuments ausgeführt werden soll. Sie wird jedoch zu diesem Zeitpunkt noch nicht ausgeführt – erst wenn das gesamte Dokument geladen ist, wird init() über den init-Zeiger ausgeführt.
Hinweis: Teile des Inhalts dieses Artikels stammen aus folgenden Quellen:
https://www.zhihu.com/question/31044040
http://blog.csdn.net/yyx19941129/article/details/49642515
Autor: jiankunking Quelle: http://blog.csdn.net/jiankunking
Urheberrechtshinweis: Der Inhalt dieses Artikels wurde von mit Echtnamen registrierten Benutzern der Alibaba Cloud beigetragen. Das Urheberrecht liegt beim ursprünglichen Autor. Die Alibaba Cloud Developer Community besitzt kein Urheberrecht und übernimmt keine entsprechende rechtliche Verantwortung. Für detaillierte Regelungen siehe „Alibaba Cloud Developer Community-Nutzungsvereinbarung“ und „Alibaba Cloud Developer Community-Richtlinien zum Schutz geistigen Eigentums“. Wenn Sie in dieser Community Inhalte finden, die im Verdacht stehen, Plagiate zu sein, füllen Sie bitte das Beschwerdeformular für Urheberrechtsverletzungen aus. Nach Überprüfung wird diese Community die angeblich rechtsverletzenden Inhalte umgehend löschen.
Verwandte Artikel
-
6 optionale Technologien zur Datenspeicherung
Wissensdatenbank-Team
Weitere Sonderangebote entdecken
-
Kurznachrichtendienst (SMS) und E-Mail-Dienst
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
