function makeClosures(arr, fn) {
let result = new Array(arr.length);
for (let i = 0; i < arr.length; i++) {
result[i] = function () {
return fn(arr[i]);
}
}
return result;
}
运行的时候拿到的arr[i]就是当时那个arr[i]

function makeClosures(arr, fn) {
let result = new Array(arr.length);
for (let i = 0; i < arr.length; i++) {
result[i] = function () {
return fn(arr[i]);
}
}
return result;
}