怎么理解reduce方法中回调函数的第一个参数。

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value) {
  return total + value;
}

两个参数必须相加才能实现数组求和。两个参数分别代表什么

reduce(function(previousValue, currentValue, currentIndex, array) { /* ... */ }, initialValue)
// reduce可接收2个参数,第一个是回调,第二个是初始值initialValue
// 在不传第二个参数的情况下(也就是默认情况下),第一次的previousValue是数组的第1(index为0)个元素,currentValue是第2(index为1)个元素,后续n次的previousValue是上一次return的值
// 传了第二个参数的情况下,第一次的previousValue是initialValue,currentValue是数组第1(index为0)个元素,后续n次的previousValue是上一次return的值

第一个参数是每次计算后的最终值,第二个参数是这一次要计算的值