引入:
有網友有如下困惑:
map是數組的方法,有一個參數,參數是一個函數,函數中有3個參數
參數1:item必須。目前元素的值
參數2:index,可選。目前元素在數組中的索引值
參數3:arr可選。目前元素屬于的數組對象
那這個作為map參數的函數是怎麼被調用的呢

一、map()定義
在JavaScript的Array中,它傳回一個新的數組,數組中的元素為原始數組調用函數處理後的值。
請注意:
map()不會對空數組進行檢測
map()不會改變原數組
二、文法:
array.map(function(currentValue, index, arr), thisIndex)
參數詳情:
function(currentValue, index, arr):必須。為一個函數,數組中的每個元素都會執行這個函數。其中函數參數:
currentValue:必須。目前元素的的值。
index:可選。目前元素的索引。
arr:可選。目前元素屬于的數組對象。
thisIndex:可選。對象作為該執行回調時使用,傳遞給函數,用作"this"的值。
var arr = [1, 2, 3, 4, 5]
Array.prototype.myMap = function(fn){
var len = this.length;
var arr = [];
for(var i = 0; i < len; i ++){
arr.push(fn(this[i],i))
}
return arr;
}
var resultArrey = arr.myMap(function(item, index){
return item * 2;
})
console.log(resultArrey); //[2,4,6,8,10]