Heim > Artikel > Web-Frontend > ## Woher kommen die Parameter in JavaScript-Rückruffunktionen?
Den Ursprung von Parametern in JavaScript-Rückruffunktionen verstehen
In JavaScript werden Rückruffunktionen häufig verwendet, um die Ausführung zu verschieben, bis ein bestimmtes Ereignis eintritt. Allerdings kann die Quelle der Variablen der Callback-Funktion rätselhaft erscheinen. Lassen Sie uns in die Anatomie von Rückruffunktionen und ihren Parameterursprüngen eintauchen, indem wir den folgenden Node.js-Code als Beispiel verwenden:
router.get('/', function(req, res){ res.render('index', {}); });
Wie werden die Variablen „req“ und „res“ aufgefüllt?
Im Gegensatz zu dem, was man annehmen könnte, sind „req“ und „res“ nicht innerhalb der Callback-Funktion selbst definiert. Stattdessen stammen sie von der Funktion, die sie aufruft, in diesem Fall „router.get“.
Wenn „router.get“ mit einer Rückruffunktion aufgerufen wird, werden zwei Argumente an diese Funktion übergeben:
Aufrufzeit und Parameterursprung
Es ist wichtig, sich daran zu erinnern, dass Rückruffunktionen vorhanden sind werden nicht sofort ausgeführt, wenn sie definiert werden. Stattdessen werden sie zu einem späteren Zeitpunkt aufgerufen, typischerweise wenn das Ereignis eintritt, mit dem sie verknüpft sind. In diesem Fall wird die Rückruffunktion aufgerufen, wenn eine HTTP-GET-Anfrage an den „/“-Endpunkt gestellt wird.
Zum Zeitpunkt des Aufrufs wird die Funktion, die Sie an „router.get“ übergeben haben, mit „req“ ausgeführt. und „res“-Parameter, die von der Funktion selbst bereitgestellt werden. Mit anderen Worten: Die Variablen „req“ und „res“ sind nicht im Gültigkeitsbereich der Callback-Funktion vorhanden, sondern werden beim Aufruf der Funktion als Argumente übergeben.
Vereinfachtes Beispiel ohne „res“-Deklaration
Um die Funktionsweise dieser Parameterübergabe weiter zu veranschaulichen, finden Sie hier ein vereinfachtes Beispiel, das zeigt, wie Sie „res.render“ aufrufen können, ohne „res“ explizit zu deklarieren:
// Define a function to handle HTTP GET requests function handleGetRequest(req, res) { // Render the 'index' view using the data provided by the request res.render('index', {}); } // Register the handler with the router router.get('/', handleGetRequest);
In diesem Beispiel haben wir eine separate Funktion („handleGetRequest“) erstellt, die die HTTP-GET-Anfragen verarbeitet. Diese Funktion verwendet die Objekte „req“ und „res“ als Parameter. Wenn eine HTTP-GET-Anfrage an den Endpunkt „/“ gestellt wird, ruft der Router die Funktion „handleGetRequest“ auf und übergibt ihm die Objekte „req“ und „res“. Die Funktion kann diese Objekte dann verwenden, um auf Anforderungsinformationen zuzugreifen und eine HTTP-Antwort zu senden.
Dieser Ansatz zeigt, dass Sie „res“ innerhalb der Rückruffunktion nicht explizit deklarieren müssen, solange es als übergeben wird Argument, wenn die Funktion aufgerufen wird.
Das obige ist der detaillierte Inhalt von## Woher kommen die Parameter in JavaScript-Rückruffunktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!