


Wie kann ich dynamisch auf Namen und Werte von JavaScript-Funktionsparametern zugreifen?
Dec 15, 2024 am 03:47 AMDynamischer 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
- Standardparameter können dazu führen, dass die getParamNames-Funktion unerwartete Ergebnisse zurückgibt.
- Das Argumentobjekt ist kein tatsächliches Array , aber es kann in eines umgewandelt werden.
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Ersetzen Sie Stringzeichen in JavaScript

JQuery überprüfen, ob das Datum gültig ist

Benutzerdefinierte Google -Search -API -Setup -Tutorial

HTTP-Debugging mit Knoten und HTTP-Konsole

JQuery fügen Sie Scrollbar zu Div hinzu
