在 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;
}
<div id="demo"></div>
最佳答案
它实际上只被调用一次,因为对 displayCars()
的第二次调用是在 myFunction
内部,它永远不会被调用。
更改代码以调用 myFunction
并远离 W3 Schools,因为众所周知,它包含不正确且过时的信息。使用Mozilla Developer Network instead .
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;
}
<div id="demo"></div>
关于javascript - 为什么这个 JavaScript 函数被调用两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48688622/