我需要将 window.setTimeout 分配给动态创建的全局变量或对象,例如:
$n = 1
var variable[$n] = window.setTimeout( function () { /*somecode*/ },2000)
这不起作用。
也不起作用:
var eval(variable+$n) = window.setTimeout( function () { /*somecode*/ },2000)
但是无需“var”即可工作,但我需要全局变量,因此我需要“var”范围。
可能的解决方案是什么?
最佳答案
你可以像这样实现
variable = [];
variable[1] = window.setTimeout( function () { alert('hi') }, 2000);
// This will alert 'hi' in 2 seconds
或者如果您希望能够像函数
一样调用setTimeout
,您可以这样做
variable = [];
variable[1] = function(){ window.setTimeout( function () { alert('hi') },2000) };
// This won't alert 'hi' until you do this
variable[1]();
您遇到的问题是 variable
不是 array
因此,如果您想按照自己的方式进行操作,则必须首先创建 variable
> 像这样的数组
,并且是全局的?只需删除 var
$n = 1
variable = [];
variable[$n] = window.setTimeout( function () { alert('hi') },2000);
关于javascript - 如何将 window.setTimeout 分配给动态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484964/