为什么这个JavaScript函数被调用两次?

fro*_*ops 0 javascript arrays sorting

在W3 School Array Sort的这个示例中,函数displayCars似乎被调用了2次.它在第一个函数之前和第一个函数内部调用.有人可以解释这背后的原因吗?我无法理解为什么.提前致谢.

var cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}]

displayCars();

function myFunction() {
    cars.sort(function(a, b){return a.year - b.year});
    displayCars();
}

function displayCars() {
  document.getElementById("demo").innerHTML =
  cars[0].type + " " + cars[0].year + "<br>" +
  cars[1].type + " " + cars[1].year + "<br>" +
  cars[2].type + " " + cars[2].year;
}
Run Code Online (Sandbox Code Playgroud)
<div id="demo"></div>
Run Code Online (Sandbox Code Playgroud)

Sco*_*cus 5

它实际上只被调用一次,因为第二次调用displayCars()是在内部myFunction,从未被调用.

更改代码以致电myFunction并远离W3学校,因为众所周知,这些代码有不正确和过时的信息.请改用Mozilla Developer Network.

var cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}]

myFunction();

function myFunction() {
    cars.sort(function(a, b){return a.year - b.year});
    displayCars();
}

function displayCars() {
  document.getElementById("demo").innerHTML =
  cars[0].type + " " + cars[0].year + "<br>" +
  cars[1].type + " " + cars[1].year + "<br>" +
  cars[2].type + " " + cars[2].year;
}
Run Code Online (Sandbox Code Playgroud)
<div id="demo"></div>
Run Code Online (Sandbox Code Playgroud)