4
如果使用Function.length
屬性,則會得到函數所需的參數總數。獲取函數參數長度,包括默認參數
但是,根據文檔(以及實際嘗試),它不包括計數中的默認參數。
這個數字不包括其他參數,並只包括第一個具有缺省值 - Function.length
前參數是否有可能,我以某種方式得到一個數(從功能外),其中包括默認參數?
如果使用Function.length
屬性,則會得到函數所需的參數總數。獲取函數參數長度,包括默認參數
但是,根據文檔(以及實際嘗試),它不包括計數中的默認參數。
這個數字不包括其他參數,並只包括第一個具有缺省值 - Function.length
前參數是否有可能,我以某種方式得到一個數(從功能外),其中包括默認參數?
也許你可以自己解析它,像:
function getNumArguments(func) {
var s = func.toString();
var index1 = s.indexOf('(');
var index2 = s.indexOf(')');
return s.substr(index1 + 1, index2 - index1 - 1).split(',').length;
}
console.log(getNumArguments(function(param1, param3 = 'test', ...param2) {})); //3
當您在默認的初始化程序中擁有一個函數(或帶逗號的括號)時,這不起作用 – Bergi
看看這個:https://github.com/tunnckocore/parse-function –
一般來說是更好專注於您嘗試解決這類問題的問題。文檔清楚地陳述真相,數字不暴露,所以現在答案只是「不」,而如果你解釋了你想要做的事情,人們將能夠更有效地指導你。 – loganfsmyth
你不應該依賴'Function.length'。爲什麼?因爲你會遇到麻煩 - 就像它已經發生一樣。 – ftor