動態存取函數參數資訊
在 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']
取得參數值
除了參數名稱之外,arguments 物件也可用於存取函數本身內的參數值:
var args = Array.slice(arguments);
這將建立一個包含所有函數值的陣列參數。
用法範例
考慮以下任意數量參數的函數:
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中文網其他相關文章!