Javascript 调用两次时函数不执行

Javascript function when called twice does not execute

我想了解 'w3schools - Lesson: JS Async' 上关于函数排序的教程,但我被困在下面的例子中。

如果你有一个被调用两次的 JS 函数,显然调用函数的顺序决定了哪个函数被执行,在下面的例子中我希望第一个函数被执行但它不是

这节课的精髓应该是函数的声明不决定它的执行顺序,只决定它的调用方式,但是我看不懂..

任何人都可以详细说明或解释这种语法的逻辑吗?或者 JS 的幕后发生了什么?

Link 到教程:https://www.w3schools.com/js/js_callback.asp

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Function Sequence</h2>

<p>JavaScript functions are executed in the sequence they are called.</p>

<p id="demo"></p>

<script>
function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

function myFirst() {
  myDisplayer("Hello");
}

function mySecond() {
  myDisplayer("Goodbye");
}

myFirst();
mySecond();
</script>

</body>
</html>

您可以通过在 myDisplayer 函数中包含 console.log 语句来验证两个函数的调用顺序是否正确。

因为每次调用该函数时都会覆盖 #demo 的全部内容,所以您只能看到最后一次函数调用的结果。

function myDisplayer(some) {
  console.log(some);
  document.getElementById("demo").innerHTML = some;
}

function myFirst() {
  myDisplayer("Hello");
}

function mySecond() {
  myDisplayer("Goodbye");
}

myFirst();
mySecond();
<p id="demo"></p>