Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.setTimeout不';t读取正确的值_Javascript_Settimeout - Fatal编程技术网

Javascript window.setTimeout不';t读取正确的值

Javascript window.setTimeout不';t读取正确的值,javascript,settimeout,Javascript,Settimeout,这是密码 var _d=1000; for(var ii=0; ii<4; ii+=1){ console.log(_d*ii); window.setTimeout(applyState(ii,_d),_d*ii); } var=1000; 对于(var ii=0;ii您需要向setTimeout传递一个函数,您当前正在传递applyState(ii,_d)的返回值 试一试 除非applyState实际上不需要参数,在这种情况下,您可以使用 window.setTim

这是密码

var _d=1000;
for(var ii=0; ii<4; ii+=1){
    console.log(_d*ii);
    window.setTimeout(applyState(ii,_d),_d*ii);
} 
var=1000;

对于(var ii=0;ii您需要向setTimeout传递一个函数,您当前正在传递applyState(ii,_d)的返回值

试一试

除非applyState实际上不需要参数,在这种情况下,您可以使用

window.setTimeout(applyState, _d*ii)
()
运算符调用函数,您应该传递函数本身,否则函数的返回值将传递给
setTimeout
函数。但这不会完全解决问题。
for
块不会创建新的作用域。您可以使用自调用函数:

var _d=1000;
for(var ii=0; ii<4; ii+=1){
    (function(a) {
         console.log(_d * a);
         window.setTimeout(function() {
            applyState(a,_d);
          },_d*a);    
    })(ii);
} 
var=1000;

对于(var ii=0;ii,但它不会识别我的变量ii,\u d
var _d=1000;
for(var ii=0; ii<4; ii+=1){
    (function(a) {
         console.log(_d * a);
         window.setTimeout(function() {
            applyState(a,_d);
          },_d*a);    
    })(ii);
}