如何檢查JavaScript中的函數是否需要執行參數?如何檢查函數是否需要參數?
function functionWithArgs(arg1, arg2) {...}
function functionWithoutArgs() { /* I will return a function here */ }
我在checkin函數是否有通過ES7裝飾器的任何參數,所以我不知道檢查它們時的函數名稱。
內一個裝飾
// If the function has arguments, use descriptor.value without invoking it
if (descriptor.value.HAS_ARGUMENTS) descriptor.value;
// If the function has no arguments, invoke it as it will return a function with arguments
else descriptor.value();
雖然我使用ES7裝飾,這個問題應該能夠在不ES7的任何知識來回答。
更新:我知道,我可以這樣做if (descriptor.value() === 'undefined')
,以確定該函數是否返回任何值,但可能並不總是返回函數內的情況。
僅供參考有沒有這樣的東西作爲ES7裝飾。 ES2016(ES7)規格已經完成,裝飾器仍然只是[第二階段提案](https://github.com/tc39/proposal-decorators)。 –
你不知道一個函數*是否需要*參數來運行;只是它是否可以接受它們。 – Utkanos
@DanPrince我沒有提到我實際上使用的是TypeScript,但我不想將它歸類爲TypeScript問題以覆蓋更廣泛的受衆。而尼娜的回答對我來說足夠好用了。 – borislemke