JavaScript 代码执行顺序如何工作?

问题描述 投票:0回答:0

当我使用 setInterval 时遇到了一个问题,执行代码的顺序让我感到惊讶:

var attack1 = setInterval(function(){
        weapon1.style.visibility = "visable";
        weapon1.animate(attack1Animation, attackTiming);
        weapon1.style.visibility = "hidden";
    }, 10000/unit1.attack_speed);

weapon1.style.visibility = "隐藏"; 执行速度比 weapon1.animate(attack1Animation, attackTiming);

我知道我们在 JS 中有 LIFO 和 FIFO。异步 JS 和函数(我不确定是否所有类型的函数)在其他代码之后执行。所以我尝试了这样的事情:

function notVisable() {
        weapon1.style.visibility = "hidden";
    }

    var attack1 = setInterval(function(){
        weapon1.style.visibility = "visable";
        weapon1.animate(attack1Animation, attackTiming);
        notVisable();
    }, 10000/unit1.attack_speed);

没有那两行,一切仍然有效:

  • weapon1.style.visibility = "可见";
  • weapon1.style.height = "200px";

动画作品,所以这不是动画的错。

可能我会设法修复它,但我想了解它是如何工作的:D

javascript fifo lifo
© www.soinside.com 2019 - 2024. All rights reserved.