0
具有與2種可能的方法的對象,有一種簡單的方法來檢查,如果該方法接受一個參數或不使用純javascript:如何知道函數是否接受參數?
getItems(id) {...};
getItems() {...};
想檢查方法接受id參數或不?
具有與2種可能的方法的對象,有一種簡單的方法來檢查,如果該方法接受一個參數或不使用純javascript:如何知道函數是否接受參數?
getItems(id) {...};
getItems() {...};
想檢查方法接受id參數或不?
您可以從功能的length
財產得到正式的參數(元數)數量:
function zero() { }
function one(a) { }
console.log(zero.length); // 0
console.log(one.length); // 1
在JavaScript中,這是從數量不同參數它實際上是在任何給定的特定場合調用的,你可以從函數中的arguments
僞陣列(或ES2015 +,by使用rest參數並獲取其長度)。
說到ES2015的,休息參數不添加到元數,所以:
function stillOne(a, ...rest) { }
console.log(stillOne.length); // 1
同樣,默認參數一個參數不添加到元數,而事實上防止以下任何其他人加入到它(他們認爲有undefined
無聲默認):
function oneAgain(a, b = 42) { }
console.log(oneAgain.length); // 1
function oneYetAgain(a, b = 42, c) { }
console.log(oneYetAgain.length); // 1
謝謝T.J.克勞德,這解決了我的問題,不知道爲什麼我錯過了已經回答的問題:http://stackoverflow.com/questions/4848149/get-a-functions-arity – emvidi
無後顧之憂 - 高興地刪除這個,所以你可以如果您願意,可以刪除該問題。 (如果您願意,請高興地離開它。) –
我寧願保留它,謝謝 – emvidi