Way One.使用forEach
function makeClosures(arr, fn) {
let res=[];
arr.forEach(ele=>res.push(function(){
return fn(ele);
}));
return res;
}
Way Two.使用let关键字
function makeClosures(arr, fn) {
let res=[];
for(let i=0;i<arr.length;i++){
res[i]=function(){
return fn(arr[i]);
}
}
return res;
}
Way Three.使用闭包
function makeClosures(arr, fn) {
let res=[];
for(var i=0;i<arr.length;i++){
res[i]=function(num){
return function(){
return fn(num);
}
}(arr[i]);
}
return res;
}