<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Array.forEach()</h1>
<p>为每个元素调用一次函数。</p>
<p id="demo"></p>
<script>
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);
document.getElementById("demo").innerHTML = txt;
function myFunction(value, index, array) {
txt = txt + value + "<br>";
}
</script>
</body>
</html>myFunction()和forEach()这两个地方有点蒙了。为什么myFunction()在调用的时候没有传参啊,这段代码是可以正常运行的。

解决方案 »

  1.   

    这个就是把forEach里面的函数提取出来而已,  原本样子是
     
      var txt = "";
      var numbers = [45, 4, 9, 16, 25];
      document.getElementById("demo").innerHTML = txt;
      numbers.forEach(function(value, index, array) {
         txt = txt + value + "<br>";
      });
         
     
    forEach默认接收3个参数, 当前元素, 当前元素的索引值, 当前元素所属的数组对象
      

  2.   

    基础知识看一下吧https://www.runoob.com/jsref/jsref-foreach.html,forEach需要传一个 回调函数, numbers.forEach(myFunction);  这句代码本身 不是执行myFunction  而是在forEach的内部去执行 myFunction   所以myFunction是不需传参数。