我正在尝试解决这个算法。我想我已经很接近了。
我需要seven
函数将a
变量传递给timesFive
函数。或者,有没有一种方法可以让* 5
运算从时间五到时间七,以获得所需的结果?
- 我不允许有这两个函数范围之外的变量
-
只要b仍然是第一个自变量,我就可以在timeFive中添加另一个自变量。
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
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
BTW你经常会看到这些练习的写作方式模仿了数学中的函数表示法,比如:
const seven = (action) => action(7);
const timesFive = () => (a) => a * 5;
console.log(seven(timesFive())); // Desired result: 35