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; }