関数パラメータ情報への動的アクセス
JavaScript では、実行時に関数パラメータの名前と値に動的にアクセスすることが望ましいことがよくあります。この記事では、この機能を実現する方法について説明します。
パラメータ名の取得
任意の関数のパラメータ名の配列を取得するには、次の関数を使用できます。
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; };
この関数はコメントを置換し、正規表現を使用してパラメータ名を照合します。例:
getParamNames(getParamNames) // returns ['func'] getParamNames(function (a,b,c,d){}) // returns ['a','b','c','d']
パラメータ値の取得
パラメータ名に加えて、引数オブジェクトを使用して関数自体内のパラメータ値にアクセスできます。
var args = Array.slice(arguments);
これにより、すべての関数の値を含む配列が作成されます。 parameters.
使用例
任意の数のパラメータを取る次の関数を考えてみましょう:
function doSomething() { // Fill an array with parameter names and values var paramNames = getParamNames(doSomething); var paramValues = Array.slice(arguments); }
関数内の getParamNames 関数はパラメータ名を取得するために使用され、Array.slice(arguments) はパラメータを取得するために使用されます。
考慮事項
以上がJavaScript 関数のパラメータ名と値に動的にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。