ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 関数のパラメータ名と値を動的に取得するにはどうすればよいですか?

JavaScript 関数のパラメータ名と値を動的に取得するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-06 10:46:11
オリジナル
217 人が閲覧しました

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

JavaScript で関数パラメータの詳細を動的に取得する方法

シナリオによっては、関数のパラメータ名と値に動的にアクセスすることが必要になります。この記事では、この問題に対する確実な解決策を検討します。

パラメータ名を抽出する関数

次の関数 getParamNames は、提供された関数のパラメータ名を抽出できます:

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;
}
ログイン後にコピー

使用法と例

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 []
ログイン後にコピー

注: デフォルトの処理パラメータ

ES6 の登場により、デフォルトのパラメータにより getParamNames 関数が失敗する可能性があります。これに対処するために、更新バージョンが提供されています。

var STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,\)]*(('(?:\'|[^'\r\n])*')|("(?:\"|[^"\r\n])*"))|(\s*=[^,\)]*))/mg;
ログイン後にコピー

この拡張バージョンはほとんどの場合デフォルトのパラメータを処理しますが、例外が発生する可能性があります。

パラメータ値の取得

パラメータ名の取得に加えて、対応する値も必要になる場合があります。これは、配列に変換できるローカル変数引数を介して簡単にアクセスできます:

var args = Array.prototype.slice.call(arguments);
ログイン後にコピー

または、配列ジェネリックが利用可能な場合:

var args = Array.slice(arguments);
ログイン後にコピー

これらの手法を採用することで、開発者はさまざまなニーズやカスタマイズに応じて、関数のパラメーターと値に動的にアクセスできます。

以上がJavaScript 関数のパラメータ名と値を動的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート