代码比白话更容易解释了…

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 ,'----')