代码比白话更容易解释了… Array.prototype.myReduce = function (f, value=0) { for (let i = 0; i < this.length; i++) { value = f(this[i], value) } return value } let data = [4,8,15,16,23,42] let add = function (a,b){ return a+b } let sum = data.myReduce(add) console.log(sum ,'----')