/* 描述 实现函数 makeClosures,调用之后满足如下条件: 1、返回一个函数数组 result,长度与 arr 相同 2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同 示例: var arr = [1,2,3]; var fn = function (x) { return x * x; } var result = makeClosures(arr,fn); (result[1]() === 4) === (fn(arr[1]) === 4) === true */ function makeClosures(arr, fn) { return arr.map(item=>{ return function(){ return fn(item); } }) } const makeClosures1 = (arr, fn) => arr.map((num,idx) => fn.bind(null,num) );