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

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

Barbara Streisand
Barbara StreisandOriginal
2024-12-06 10:46:11218Durchsuche

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

So rufen Sie Funktionsparameterdetails dynamisch in JavaScript ab

In einigen Szenarien ist der dynamische Zugriff auf die Parameternamen und -werte einer Funktion erforderlich. In diesem Artikel wird eine robuste Lösung für dieses Problem untersucht.

Funktion zum Extrahieren von Parameternamen

Die folgende Funktion, getParamNames, kann die Parameternamen jeder bereitgestellten Funktion extrahieren:

var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
var ARGUMENT_NAMES = /([^\s,]+)/g;

function getParamNames(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;
}

Verwendung und Beispiele

getParamNames(getParamNames) // returns ['func']
getParamNames(function (a,b,c,d){}) // returns ['a','b','c','d']
getParamNames(function (a,/*b,c,*/d){}) // returns ['a','d']
getParamNames(function (){}) // returns []

Hinweis: Umgang mit Standardparametern

Mit dem Aufkommen In ES6 können Standardparameter die Funktion getParamNames auslösen. Um dieses Problem zu beheben, wird eine aktualisierte Version bereitgestellt:

var STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,\)]*(('(?:\'|[^'\r\n])*')|("(?:\"|[^"\r\n])*"))|(\s*=[^,\)]*))/mg;

Während diese erweiterte Version in den meisten Fällen Standardparameter verarbeitet, können Ausnahmen auftreten.

Abrufen von Parameterwerten

In Zusätzlich zum Abrufen von Parameternamen kann es sein, dass man auch die entsprechenden Werte benötigt. Dies ist über die lokale Variable arguments leicht zugänglich, die in ein Array konvertiert werden kann:

var args = Array.prototype.slice.call(arguments);

Alternativ, wenn Array-Generika verfügbar sind:

var args = Array.slice(arguments);

Durch den Einsatz dieser Techniken können Entwickler kann dynamisch auf die Parameter und Werte von Funktionen für verschiedene Anforderungen und Anpassungen zugreifen.

Das obige ist der detaillierte Inhalt vonWie kann ich Namen und Werte von JavaScript-Funktionsparametern dynamisch abrufen?. 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