实现函数 makeClosures,调用之后满足如下条件:
1、返回一个函数数组 result,长度与 arr 相同
1、返回一个函数数组 result,长度与 arr 相同
2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同
es6:
function
makeClosures(arr, fn) {
var
result =
new
Array();
for
(let i=0;i<arr.length;i++){
result[i] =
function
(){
return
fn(arr[i]);
//let声明的变量只在let所在代码块内有效,因此每次循环的i都是一个新的变量
};
}
return
result;
}
|