HUX布斯
2023-03-24 15:19:09
我在我的項目中的一個函數中遇到了上述錯誤,并將代碼簡化為以下內容。控制臺成功記錄了正確的結果,但仍然出現覆蓋和錯誤。有什么辦法可以阻止這種情況發生嗎?當它仍然正確運行時拋出錯誤似乎很奇怪。func1 = (x,y) => { let result=(x+y) console.log(result)}func2 = x => { x() // <= TypeError pointing to this not being a function}func2(func1(1,4)) // returns 5 but still getting TypeError
2 回答

心有法竹
TA貢獻1866條經驗 獲得超5個贊
func2接受一個函數作為參數,但你將它func1(1,4)作為參數傳遞,它的計算結果為undefined(因為func1不返回任何東西)。
傳遞一個使用 所需參數調用的函數func,如果這是你想要做的:
const func1 = (x, y) => {
const result = x + y;
console.log(result);
}
const func2 = x => {
x();
};
func2(() => func1(1, 4));
或者,如果您想獲得更多功能,您甚至可以執行以下操作:
const func1 = x => y => x + y;
const func2 = x => x;
console.log(func2(func1)(1)(4));

慕尼黑8549860
TA貢獻1818條經驗 獲得超11個贊
您已經將函數作為參數發送。傳入的屬性已經是一個函數。您無需再次鍵入“()”。
const func1 = (x, y) => {
const result = x + y;
console.log(result);
}
const func2 = x => {
x;
};
func2(func1(1, 4));
添加回答
舉報
0/150
提交
取消