Array.prototype.map = function(func,thisArg){
return this.reduce((accumulator,currentValue,currentIndex,array) => {
accumulator.push(func.bind(thisArg)(currentValue,currentIndex,array))
return accumulator
},[])
}
let arr = [1,2,3]
let res = arr.map(function(item,index){
return item + this.num
},{num: 10})
console.log(res)