思路:闭包。注意,返回的是函数数组,故可以使用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
}

总结:注意,是函数数组!!