思路:闭包。注意,返回的是函数数组,故可以使用map将arr中的每个元素映射为一个函数,函数的返回值是fn(el)。
function makeClosures(arr, fn) { return arr.map(el=>{ return function(){ return fn(el) } }) }
思路:bind返回的也是一个函数。this指的是如果fn中有使用this,则将使用第一个参数的对应属性!!
function makeClosures(arr, fn) { let result=[] for(let i=0;i<arr.length;i++) result[i]=fn.bind(this,arr[i]) return result }
总结:注意,是函数数组!!