关于传递JavaScript方法的问题

关于传递JavaScript方法的问题,javascript,methods,Javascript,Methods,我有一个关于以下JavaScript代码的快速问题: <script> var numbers1 = [56, 234, 6, 5, 63, 265] ; var sum = numbers1.reduce(myFunction) ; document.getElementById("demo1").innerHTML = "The sum is " + sum ; function myFunction(total, value){

我有一个关于以下JavaScript代码的快速问题:

<script>
var numbers1 = [56, 234, 6, 5, 63, 265] ; 
var sum = numbers1.reduce(myFunction) ; 

document.getElementById("demo1").innerHTML = "The sum is " + sum ; 

function myFunction(total, value){
return total + value ; 
}
</script>`

var numbers1=[56234,6,5,63265];
var sum=numbers1.reduce(myFunction);
document.getElementById(“demo1”).innerHTML=“总和为”+总和;
函数myFunction(总计,值){
返回总+值;
}
`
我不知道为什么这段代码会生成数组中所有元素的总和,因为我们只是将myFunction()的定义传递给reduce(),而没有指定变量“total”和“value”中的内容。 还有,这些变量分别是什么


非常感谢您事先的帮助

默认情况下,使用回调函数调用
reduce()
会将这两个变量(最广为人知的是累加器和当前值)传递给回调函数。这里就是这样:
myFunction
获取每次迭代的累加器和当前值。即使您在
myFunction
中连续嵌套了多个函数,结果也是一样的:

var numbers1=[56234,6,5,63265];
var sum=numbers1.reduce(myFunction);
document.getElementById(“demo1”).innerHTML=“总和为”+总和;
函数myFunction(总计,值){
返回myMiddleFunction(总计,值);
}
函数myMiddleFunction(总计2,值2){
返回myInnerFunction(total2,value2);
}
函数myInnerFunction(总计3,值3){
返回总计3+值3
}

因为
.reduce
在数组的每个元素上执行
myFunction
,并重用以前调用的结果(在
total
参数中),非常感谢:)这是一个很好的答案,有详细的解释。我会编辑它并删除整个嵌套部分-它增加了不必要的复杂性。谢谢你们的示例代码和解释。我真的很感谢你的帮助:)顺便说一句,有没有学习材料或资源可以让我学到你可以推荐的这一级别的细节?我想MDN已经具备了你所需要的一切。他们的文档非常有启发性。@GuyLevinger OP询问从累加器和当前值的何处获得他们的值。嵌套部分有助于清除这一点。