如何在JS中實作以下邏輯
例子:
Let y = alertMyPreviousParam(“1”);
Let z= y(‘2’)
// show output as 1
Let a = z(‘3’)
// show output as 2
Let b = a(‘ra’)
// show output as 3
Let c = b(‘z’)
// show output as ‘ra’,
uj5u.com熱心網友回復:
盡管各種 Syntax error
1)用‘and括起來的字串’不是有效的javascript字串,與“and類似”。使用"或'。
2)變數應該用letnot宣告Let。
解決方案
您可以利用closure和Higher order function(HOF)在這里
function alertMyPreviousParam(arg) {
let last = arg;
return function (curr) {
console.log(last);
last = curr;
return alertMyPreviousParam(curr);
};
}
let y = alertMyPreviousParam("1");
let z = y("2");
// show output as 1
let a = z("3");
// show output as 2
let b = a("ra");
// show output as 3
let c = b("z");
// show output as ‘ra’,
uj5u.com熱心網友回復:
你會想要研究閉包。下面是一個例子:
let var = null
let next = null
const myFunc = (newnext) => {
var = next
next = newnext
return var
}
抱歉格式化,我在手機上
uj5u.com熱心網友回復:
函式 alertMyPreviousParam,回傳一個新函式,并輸出之前的輸入。這可以通過以下方式實作:
let alertMyPreviousParam = (x) => (y) => {
console.log(x);
return alertMyPreviousParam(y);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/338017.html
標籤:javascript
