Es gibt drei Möglichkeiten, benutzerdefinierte Funktionen in JavaScript zu deklarieren, nämlich die Verwendung von Funktionsanweisungen, die Verwendung von Function()-Konstruktoren und die Definition von Funktionsliteralen.
1. Funktionsanweisung
In JavaScript können Sie die Funktionsanweisung zum Deklarieren von Funktionen verwenden. Die spezifische Verwendung ist wie folgt:
function funName([args]) { Aussagen }
funName ist der Funktionsname, der wie der Variablenname ein zulässiger JavaScript-Bezeichner sein muss. Nach dem Funktionsnamen folgt eine Liste von Parametern, die in Klammern eingeschlossen und durch Kommas getrennt sind. Parameter sind optional und die Anzahl ist unbegrenzt.
Als Bezeichner wird auf Parameter nur innerhalb des Funktionskörpers zugegriffen; Parameter sind private Mitglieder des Funktionsbereichs. Übergeben Sie beim Aufrufen einer Funktion einen Wert an die Funktion, verwenden Sie dann Parameter, um den extern übergebenen Wert zu erhalten, und greifen Sie in die Ausführung der Funktion innerhalb des Funktionskörpers ein.
Nach den Klammern steht eine geschweifte Klammer, und die in der geschweiften Klammer enthaltene Anweisung ist der Hauptinhalt der Funktionskörperstruktur. Im Funktionskörper sind geschweifte Klammern unerlässlich. Ohne geschweifte Klammern löst JavaScript einen Syntaxfehler aus.
DieBeispielfunktionsanweisung
muss den Funktionsnamen sowie Klammern und geschweifte Klammern enthalten. Anderer Code kann weggelassen werden, sodass der einfachste Funktionskörper eine leere Funktion ist.
function funName() {} //Leere Funktion
Wenn Sie eine anonyme Funktion verwenden, können Sie den Funktionsnamen weglassen.
function () {} //Anonyme leere Funktionsvar
-Anweisung und Funktionsanweisung sind beide Deklarationsanweisungen, und die von ihnen deklarierten Variablen und Funktionen werden beim Vorkompilieren von JavaScript analysiert, was auch als Variablenförderung und Funktionsförderung bezeichnet wird. Während der Vorkompilierungsphase erstellt die JavaScript-Engine einen Kontext für jede Funktion, definiert ein Variablenobjekt und registriert alle formalen Parameter, privaten Variablen und verschachtelten Funktionen in der Funktion als Attribute für das Variablenobjekt.
2. Function()-Konstruktor
Verwenden Sie den Function()-Konstruktor, um schnell Funktionen zu generieren. Die spezifische Verwendung ist wie folgt:
var funName = new Function(p1, p2, ..., pn, body);
Die Parametertypen von Function() sind alle Strings, die die Parameternamenliste der erstellten Funktion darstellen. und body stellt die erstellten Funktionsstrukturanweisungen einer Funktion dar, getrennt durch Semikolons zwischen Body-Anweisungen.
Beispiel 1
kann alle Parameter weglassen und nur eine Zeichenfolge übergeben, um den Funktionskörper darzustellen.
var f = new Function ("a", "b", "return a+b");//
Klonen Sie die Funktionsstruktur durch den Konstruktor.
Dieselbe Funktion wird definiert und Funktionen mit derselben Struktur können mithilfe der Funktionsanweisung entworfen werden.
function f(a, b) { //Funktionsanweisung verwenden, um die Funktionsstruktur zu definieren return a + b; }
Beispiel 2
verwendet den Function()-Konstruktor, um eine leere Funktionsstruktur zu erstellen, ohne irgendwelche Parameter anzugeben.
var f = new Function(); // Definieren Sie eine leere Funktion,
um Funktionen dynamisch zu erstellen. Er beschränkt Benutzer nicht auf den durch die Funktionsanweisung vorab deklarierten Funktionskörper. Durch die Verwendung des Function()-Konstruktors kann die Funktion als Ausdruck und nicht als Struktur verwendet werden, sodass sie flexibler einsetzbar ist. Der Nachteil besteht darin, dass der Function()-Konstruktor während der Ausführung kompiliert wird, die Ausführungseffizienz sehr gering ist und seine Verwendung im Allgemeinen nicht empfohlen wird.
3. Anonyme Funktion (Funktionsliteral)
Funktionsliteral wird auch als anonyme Funktion bezeichnet, dh die Funktion hat keinen Funktionsnamen und enthält nur das Funktionsschlüsselwort, Parameter und den Funktionskörper. Die spezifische Verwendung ist wie folgt:
function ([args]) { Aussagen }
Beispiel 1
Der folgende Code definiert ein Funktionsliteral.
function (a, b) { //Funktionsliteral return a + b; }
Im obigen Code sind Funktionsliterale grundsätzlich dasselbe wie die Verwendung von Funktionsanweisungen zum Definieren von Funktionsstrukturen, und ihre Strukturen sind festgelegt. Das Funktionsliteral gibt jedoch nicht den Funktionsnamen an, sondern verwendet direkt das Schlüsselwort function, um die Struktur der Funktion darzustellen. Diese Art von Funktion wird auch als anonyme Funktion bezeichnet.
Beispiel 2
Eine anonyme Funktion ist ein Ausdruck, also ein Funktionsausdruck, keine Anweisung einer Funktionsstruktur. Als nächstes weisen Sie der Variablen f die anonyme Funktion als Wert zu.
//Weisen Sie die Funktion als Wert direkt der Variablen f zu var f = Funktion (a, b) { gib a + b zurück; };
Wenn die Funktionsstruktur einer Variablen als Wert zugewiesen wird, kann die Variable als Funktion aufgerufen werden und die Variable zeigt auf die anonyme Funktion.
console.log(f(1,2)); //Rückgabewert 3
Beispiel 3
Anonyme Funktionen dienen als Werte und können an komplexeren Ausdrucksoperationen teilnehmen. Für das obige Beispiel können Sie den folgenden Code verwenden, um die integrierte Operation aus Funktionsdefinition und -aufruf abzuschließen.
console.log( //Rufen Sie die Funktion als Operanden auf (function (a,b) { gib a + b zurück; })(1, 2)); //Rückgabewert 3
Sobald eine Funktion definiert ist, können wir sie an einer beliebigen Stelle im aktuellen Dokument aufrufen. Das Aufrufen einer Funktion ist sehr einfach. Fügen Sie einfach eine Klammer nach dem Funktionsnamen ein, z. B. alarm(), write(). Beachten Sie, dass, wenn beim Definieren der Funktion Parameter in Klammern nach dem Funktionsnamen angegeben werden, beim Aufruf der Funktion die entsprechenden Parameter in Klammern angegeben werden müssen.
Der Beispielcode lautet wie folgt:
function sayHello(name){ document.write("Hallo " + Name); } //Funktion sayHello() aufrufen sayHello('PHP Chinese website');
Tipp: JavaScript unterscheidet zwischen Groß- und Kleinschreibung, daher muss das Funktionsschlüsselwort beim Definieren einer Funktion in Kleinbuchstaben geschrieben werden und die Funktion muss in der gleichen Groß-/Kleinschreibung wie bei der Deklaration aufgerufen werden.
Das Obige ist eine ausführliche Analyse der Deklaration und des Aufrufs benutzerdefinierter JS-Funktionen. Weitere Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!