我正在從 Eloquent JavaScript 學習高階函式,我對類似的問題進行了研究,但找不到它。有一個與我的相同主題和相同章節的類似問題,但這是一個基本問題。這是類似的鏈接: Javascript 中的高階函式。
我面臨以下代碼的問題:
function repeat(n, action) {
for (let i = 0; i < n; i ) {
action(i);
}
}
let unless = (test, then) => {
if(!test)then();
};
repeat(3, n => {
unless(n%2 == 1, () => {
console.log(`${n} is even`);
});
});
// Output:
/ → 0 is even
// → 2 is even
- 這個高階函式是如何作業的?
- 回圈如何作業以確定數字是偶數還是奇數?
uj5u.com熱心網友回復:
function repeat(n, action) {
for (let i = 0; i < n; i ) {
action(i);
}
}
n 是您想要執行該action函式的次數。
該action函式在這里被稱為回呼函式
如果你這樣做,repeat(5, console.log)你會有:
0
1
2
3
4
你也可以function像這樣執行另一個
repeat(5, item => console.log(item));
uj5u.com熱心網友回復:
高階函式要么接受一個函式作為引數,要么回傳一個函式;雙方unless并repeat接受函式作為引數。
repeat 接受一個數字和一個函式,并簡單地呼叫傳遞給它的任何函式,次數。
unless接受一個值和一個函式;如果值為假,則將呼叫該函式。
這表明函式可以像任何其他變數一樣傳遞: inside repeat(),action指的是函式本身,并action()呼叫該函式以獲取其結果。
uj5u.com熱心網友回復:
一般來說,你的除非函式聽起來像 - 接受條件,測驗它,然后運行回呼。重復功能聽起來像運行動作 n 次。結果聽起來像運行操作,并檢查內部是否滿足條件,然后運行除非功能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/337235.html
標籤:javascript 反应 angularjs 功能 Vue.js
