Heim >Web-Frontend >js-Tutorial >Wie kann ich dynamisch auf Namen und Werte von JavaScript-Funktionsparametern zugreifen?

Wie kann ich dynamisch auf Namen und Werte von JavaScript-Funktionsparametern zugreifen?

DDD
DDDOriginal
2024-12-15 03:47:09477Durchsuche

How Can I Dynamically Access JavaScript Function Parameter Names and Values?

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

  • 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!

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