如果javascripts中有多個lambda函式,我可以給出2個引數嗎?我有以下代碼
var twice = (x) => {
return x *x;
}
var lambda = (b) => {
(a) =>{
return b(b(a));
}
};
console.log(lambda(twice, 5));
這行不通,我可以使用
var lambda = (b,a) => {
return b(b(a));
};
并且會起作用,但是我可以使用單獨的 lambda 運算式并給它們引數嗎?
uj5u.com熱心網友回復:
是的,您將利用閉包,以便從呼叫回傳的內部函式lambda()可以保留對其周圍詞法環境的參考。
然后,您使用所需的值呼叫所述內部函式lambda(twice)(5),在本例中為5。
var twice = (x) => {
return x *x;
}
var lambda = (b) => {
return (a) => {
return b(b(a));
}
};
console.log( lambda(twice)(5) ); // -> 625
uj5u.com熱心網友回復:
您可以將引數轉發給這樣的函式:
const twice = x => x * x;
const invokeFunctionWithArgs = (fn, ...args) => fn(...args);
console.log(invokeFunctionWithArgs(twice, 5)); // 25
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/392445.html
標籤:javascript
