javascript - 为什么 setTimeout 没有运行? (作用域链)

标签 javascript settimeout setinterval

我正在尝试在函数内运行 setTimeout ,以便在一秒钟后,所选图像将发生变化。

简而言之,当我按空格键时,我的程序应该:

  • 将图像更改为其他图像(有效)
  • 保持图像的负 y 轨迹(工作)
  • 等一秒钟,然后调用更改图像的方法(不起作用)

这是我的代码:

    jump() {
        console.log("space bar pressed to jump");
        this.setDirection(Constants.SKIER_DIRECTIONS.JUMP_ONE);
        turnDown = () => { this.setDirection(Constants.SKIER_DIRECTIONS.DOWN); }
        setTimeout(turnDown, 1000);
     }

动画图像不会返回到原始图像,而是无限期地保留。

这是我收到的错误消息:

Uncaught ReferenceError: turnDown is not defined

我看过类似的帖子,它们的结构与我的非常相似,但这也许与我的 turnDown 语法(箭头函数)有关?

任何见解都值得赞赏。

最佳答案

您正在尝试将 turnDown 分配给不存在的内容 - 只需在其前面添加 var - var TurnDown = ...

关于javascript - 为什么 setTimeout 没有运行? (作用域链),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56657904/

相关文章:

javascript - Mootools 等待 Fx.Morph 启动

javascript - 如何在旧浏览器上调试 Javascript

javascript - 当计时器达到 00 :00? 时,如何设置 5 秒的延迟

javascript - 新闻代码 : Recursion Error

javascript - 检查间隔是否正在运行,反之亦然

javascript - Laravel-Ajax : multiple inputs in 1 form

javascript - 是否有可免费用于 JavaScript 的具有排序功能的表对象?

javascript - setTimeout 给出 'result of expression is not a function' 错误

jQuery:在 setInterval 调用上出现奇怪的错误......我的语法错误吗?

javascript - 是否需要在 setTimeout 和 setInterval 前面加上 window 对象?