我正在尝试在函数中运行setTimeout
,以便在一秒钟后,所选图像将更改。
简而言之,当我按下空格键时,我的程序应该:
这是我的代码:
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
的语法(箭头功能)有关?
任何见识都会受到赞赏。
答案 0 :(得分:1)
您正在尝试将turnDown
分配给不存在的内容-只需在其前面添加var
-var turnDown = ...
答案 1 :(得分:1)
由于class
声明(我怀疑您在class
主体内),所以您的代码隐含在 strict模式中运行,因此将一个赋值给一个先前未声明的变量是非法的,因此是例外。在非严格模式下,分配将创建一个全局变量。如果使用const
/ var
/ let
声明进行重构,则可以。您还可以内联函数声明,并使用function
关键字声明,使您可以为此函数命名,并在抛出该函数时有更好的stacktrace。