先来看一个题目例子,我将在下一环节出闭包讲解。。
题目描述
实现函数 makeClosures,调用之后满足如下条件:
1、返回一个函数数组 result,长度与 arr 相同
2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同
1、返回一个函数数组 result,长度与 arr 相同
2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同
输入
[1, 2, 3], function (x) { return x * x; }
输出
4
function makeClosures(arr, fn) {
var result = [];
arr.forEach(function(ele){
result.push(function(num){
return function(){
return fn(num)
};
}(ele));
});
return result;
}