我正在尝试创建一个执行以下操作的闭包:
输入:参数f可以假设为一个函数,它接受一个整数并返回一个整数的参数。
输出:makeClosure应该返回一个恰好有两个函数的数组,我们称之为f1和f2。这两个函数应该包含在一个闭包中,该闭包还定义了一个名为' max'的共享变量。 (即' max'两者均可访问)。 '最大'应该通过makeClosure初始化为0。 f1应该是一个采用单个整数参数的函数,当且仅当其值大于max时,将max设置为该值。 f1应该不带参数,并返回调用f的结果,其中max为其参数。
这是我尝试过的代码,但不起作用。
function makeClosure(f) {
function getMax(f1, f2) {
var getMax = [];
f.forEach(function(f1,f2) {
getMax.push(Math.max.apply(null, f));
});
return getMax;
}
答案 0 :(得分:0)
function makeClosure(f) {
var max = 0;
return [
function f1(v) {
max = Math.max(max, v);
}, function f2() {
return f(max);
}
];
}