以下是我的意思的一些示例代码,摘自 How to JS Animate (W3 Schools via W3schools.com) .
示例代码:
function myMove()
{
var elem = document.getElementById("myAnimation");
var pos = 0;
var id = setInterval(frame, 10);
function frame()
{
if (pos == 350) {
clearInterval(id);
} else {
pos++;
elem.style.top = pos + 'px';
elem.style.left = pos + 'px';
}
}
}
在上面的具体示例代码的上下文中,为了具体起见,我将提出同样的问题。
问题:
Why can frame() be called by setInterval(frame,x) even though its first defined and declared after the assignment of setInterval() to the "id" variable deceleration?
背景:
我是一名自学成才的 C/C++ 程序员,正在尝试进入 Web 开发领域。我读过有关 ES6 变量“提升”的内容,但我不完全确定函数是否也会发生这种情况。在 C++ 和 C 中,你不能这样做(根据我的理解)!所以,请有人帮助我!
谢谢!
最佳答案
感谢Hoisting 。想象一下您的函数定义将被移动到脚本的顶部。就是这样,你可以调用frame(),尽管它的定义在下面
关于javascript - 为什么可以在脚本中声明和定义函数之前调用该函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58967365/