我正在尝试使用 setTimeout 执行一个匿名函数,我将信息传递给该函数,但遇到了问题。这个(硬编码版本)可以正常工作:
setTimeout(function(){alert("hello");},1000);
setTimeout(function(){alert("world");},2000);
但是我试图从数组中获取 hello 和 world 并将它们传递到函数中,而没有 (a) 使用全局变量,以及 (2) 使用 eval。我知道如何使用 globals 或 eval 来做到这一点,但我怎么能没有。这是我想要做的(但我知道它行不通):
var strings = [ "hello", "world" ];
var delay = 1000;
for(var i=0;i<strings.length;i++) {
setTimeout( function(){alert(strings[i]);}, delay);
delay += 1000;
}
当然,strings[i] 将脱离上下文。如何将 strings[i] 传递给没有 eval 或 globals 的匿名函数?