我正在尝试解决此算法。我想我很亲近。
我需要seven
函数将a
变量传递给timesFive
函数。还是有一种方法可以将* 5
操作从timesFive传递到7以获得期望的结果?
只要b保持第一个参数,我就可以在timesFive中添加另一个参数。
function seven(action) {
var a = 7;
return action;
}
function timesFive(b) {
console.log(a); // How can I access "a"?
return a * 5;
}
console.log(seven(timesFive())); // Desired result: 35
答案 0 :(得分:1)
timeFive
应该返回一个函数,而七个应该期望一个函数作为参数。然后seven
可以简单地调用timesFive()
返回的函数(因此基本上可以返回问题中提到的* 5
操作):
function seven(action) {
var a = 7;
return action(a);
}
function timesFive() {
return (a) => a * 5;
}
console.log(seven(timesFive())); // Desired result: 35
顺便说一句 您经常会看到以类似于数学的功能符号的方式编写的这类练习,例如:
const seven = (action) => action(7);
const timesFive = () => (a) => a * 5;
console.log(seven(timesFive())); // Desired result: 35