Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Verwendung der Javascript-Rückruffunktion mit Funktion als Parameter

Detaillierte Erläuterung der Verwendung der Javascript-Rückruffunktion mit Funktion als Parameter

伊谢尔伦
伊谢尔伦Original
2017-07-25 14:55:531552Durchsuche

Express ist die Verwendung von Callback-Funktionen, die Funktionen als Parameter übernehmen. Wenn Sie dieses Konzept nicht verstehen, wird der Code von NodeJS und Express ein Chaos sein. Beispiel:

app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

app ist ein Objekt, use ist eine Methode, der Parameter der Methode ist eine anonyme Funktion mit Parametern und der Funktionskörper wird direkt am Ende angegeben. Wie ist dieser Code zu verstehen? Lassen Sie uns zunächst das Konzept der Rückruffunktion verstehen.
Zunächst müssen Sie verstehen, dass Funktionen in js auch Objekte sind, die Variablen zugewiesen und als Parameter in der Parameterliste der Funktion platziert werden können. Beispiel:

var doSomething = function(a,b)
{
 return a + b;
}

Dieser Code bedeutet, eine anonyme Funktion zu definieren. Abgesehen davon, dass diese anonyme Funktion keinen Namen hat, unterscheidet sie sich nicht von einer gewöhnlichen Funktion. Weisen Sie dann die anonyme Funktion der Variablen doSomething zu. Als nächstes rufen wir auf:

console.log(doSomething(2,3));

was 5 ausgibt.

Die Rückruffunktion wird in die Parameterliste einer anderen Funktion (z. B. einer übergeordneten Funktion) eingefügt, als Parameter an diese übergeordnete Funktion übergeben und dann irgendwo im übergeordneten Funktionskörper ausgeführt. Schauen Sie sich abstrakt das Beispiel an:

// To illustrate the concept of callback
var doit = function(callback)
{
    var a = 1,
        b = 2,
        c = 3;
    var t = callback(a,b,c);
    return t + 10;
};
var d = doit(function(x,y,z){
    return (x+y+z);
});
console.log(d);

Definieren Sie zunächst die Doit-Funktion, die über einen Parameter-Callback verfügt. Dieser Rückruf ist die Rückruffunktion und der Name kann beliebig sein. Betrachten Sie den Funktionskörper und definieren Sie zunächst drei Variablen a, b und c. Rufen Sie dann die Callback-Funktion auf. Gibt schließlich einen Wert zurück.

Die Doit-Funktion wird unten aufgerufen. Es ist zu beachten, dass bei der Definition von doit gerade kein Rückruf definiert war, sodass ich nicht wusste, wofür der Rückruf verwendet wurde. Dies ist eigentlich leicht zu verstehen. Wenn wir eine Funktion definieren, wird dem Parameter nur ein Name zugewiesen, z. B. a, und a wird im Funktionskörper verwendet, aber der gesamte Prozess weiß nicht, was a ist Funktion Geben Sie dann nur den spezifischen Wert von a an, z. B. 2. Rückblickend müssen wir beim Aufruf von doit angeben, was ein Rückruf ist. Wie Sie sehen, vervollständigt diese Funktion eine Summenfunktion.

Der Ausführungsprozess des obigen Codes ist:

Rufen Sie die Doit-Funktion auf, der Parameter ist eine anonyme Funktion, geben Sie den Funktionskörper von Doit ein, definieren Sie zuerst a, b, c und dann Führen Sie gerade die anonyme Funktion aus. Die Parameter sind a, b, c, geben a t zurück und geben schließlich a t + 10 an d zurück.

Zurück zum ursprünglichen Beispiel: app.use(...) ist ein Funktionsaufruf. Wir können uns vorstellen, dass eine Verwendungsmethode zuvor definiert worden sein muss, aber sie wird hier nicht angegeben. Wenn Sie diese beiden Beispiele vergleichen, können Sie es sofort verstehen.

Bei der Verwendung von NodeJS und Express ist es für uns unmöglich, die Funktionsdefinition jeder Methode oder Funktion zu finden und einen Blick darauf zu werfen. Wissen Sie also einfach, welche Parameter in dieser Definition an den Rückruf übergeben werden. Wenn wir dann eine Methode oder Funktion aufrufen, definieren wir selbst anonyme Funktionen in den Parametern, um bestimmte Funktionen abzuschließen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung der Javascript-Rückruffunktion mit Funktion als Parameter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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