如何将更改参数传递给setTimeout?

lop*_*ata 0 javascript settimeout

我想将一个全局参数传递给a中的函数setTimeout,但我希望该值在setTimeout解释时保持不变:

var a=0;

setTimeout(function(){
	console.log(a);
},5000,a)

a=1;

//output is 1 and should be 0
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?我已经搜索了Stack Overflow的答案,但没有找到任何答案.

Raz*_*zem 10

那是因为你实际上仍在使用外部变量.只需将参数添加到函数中:

setTimeout(function (a) {
    console.log(a);
}, 5000, a);
Run Code Online (Sandbox Code Playgroud)