Dynamischer Zugriff auf Funktionsparameterinformationen
In JavaScript ist es oft wünschenswert, während der Laufzeit dynamisch auf Funktionsparameternamen und -werte zuzugreifen. In diesem Artikel wird eine Methode zum Erreichen dieser Funktionalität beschrieben.
Parameternamen abrufen
Um ein Array von Parameternamen für eine bestimmte Funktion abzurufen, kann die folgende Funktion verwendet werden:
var getParamNames = function(func) { var fnStr = func.toString().replace(STRIP_COMMENTS, ''); var result = fnStr.slice(fnStr.indexOf('(')+1, fnStr.indexOf(')')).match(ARGUMENT_NAMES); if(result === null) result = []; return result; };
Diese Funktion ersetzt Kommentare und gleicht die Parameternamen mithilfe eines regulären Ausdrucks ab. Zum Beispiel:
getParamNames(getParamNames) // returns ['func'] getParamNames(function (a,b,c,d){}) // returns ['a','b','c','d']
Parameterwerte abrufen
Zusätzlich zu Parameternamen kann das Argumentobjekt verwendet werden, um auf Parameterwerte innerhalb der Funktion selbst zuzugreifen:
var args = Array.slice(arguments);
Dadurch wird ein Array erstellt, das die Werte aller Parameter der Funktion enthält.
Beispiel Verwendung
Betrachten Sie die folgende Funktion, die eine beliebige Anzahl von Parametern akzeptiert:
function doSomething() { // Fill an array with parameter names and values var paramNames = getParamNames(doSomething); var paramValues = Array.slice(arguments); }
Innerhalb der Funktion wird die Funktion getParamNames verwendet, um die Parameternamen und Array.slice abzurufen (Argumente) wird verwendet, um den Parameter zu erhalten Werte.
Überlegungen
Das obige ist der detaillierte Inhalt vonWie kann ich dynamisch auf Namen und Werte von JavaScript-Funktionsparametern zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!