let arr =[3,4,5,6,7];
Array.prototype.newMap=function(fn, thisArg){// 首先判断传入的第一个参数是否为函数, 如果不是则抛出错误if(Object.prototype.toString.call(fn)!=="[object Function]"){throw("The first argument must be a function")}// 定义一个空数组用作保存数据使用let result =[];// currentArr指向this, this也就是调用该map方法的数组本身let currentArr =this;for(let i =0; i < currentArr.length; i++){// 循环遍历, 调用传入的函数, 并将返回值保存在result中
result[i]= fn.call(thisArg, currentArr[i], i, currentArr)}// 返回resultreturn result
}
console.log(arr.newMap((item, index, arr)=>{return item++}));