//方法一--使用bind()方法,将fn() push到fncArr里面 function makeClosures(arr, fn) { var fncArr = [] arr.forEach(item=>{//闭包 fncArr.push(fn.bind(this,item)) }) return fncArr } //方法二--利用map实现 function makeClosures(arr, fn) { return arr.map(el=>{ return function () { return fn(el) } }) }