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
Freigeben: 2024-12-06 10:46:11
Original
217 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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 []
Nach dem Login kopieren

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;
Nach dem Login kopieren

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);
Nach dem Login kopieren

Alternativ, wenn Array-Generika verfügbar sind:

var args = Array.slice(arguments);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage