最近我发现了这段代码,这是一个“发现错误并修改”类型的练习。目的是使这段代码在不移动代码顶部的消息变量的情况下工作,我很好奇如何实现这一点。
function myMethod(cb) {
cb();
}
myMethod( () => console.log(message) );
const message = "My message";
最佳答案
我首先想到的是用 var
关键字声明变量,然后程序不会抛出错误但仍然不会打印消息。如果不使用 event loop,您永远无法将初始化带到文件顶部.
显然唯一的方法是包围 myMethod( () => console.log(message) )
在 setTimeout 函数中
setTimeout(() => {
myMethod( () => console.log(message) )
}, 0)
这样函数的执行会被延迟到调用栈为空。然后它将使用届时设置的当前值执行该函数。
关于javascript - 在初始化之前使用变量。 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59240761/