TJ *_*dle 1 javascript settimeout
奇怪的是,我指的是这两件事:
如果有一种绕过#2的方式 - 这将是非常棒的,但是现在我只是好奇这一点.
简短的片段来解释我在说什么:
for (var i=0; i<10; i++) setTimeout("addInput('.')",i*500);
setTimeout('addInput("</br>")',5100);
Run Code Online (Sandbox Code Playgroud)
在上面,除非addInput('.')被引号括起,否则忽略延迟并且只执行代码; 除非我向第二行添加超时,否则它将在第一个超时完成之前执行.
第一个参数中的函数需要用引号括起来,否则延迟设置为0(一切都立即执行).
不必要.实际上建议使用直接使用函数指针而不是字符串的重载来避免解析它的开销:
for (var i=0; i<10; i++) {
setTimeout(function() {
addInput('.');
}, i * 500);
}
Run Code Online (Sandbox Code Playgroud)
或其等价物(警告:在IE中不起作用):
for (var i=0; i<10; i++) {
setTimeout(addInput, i * 500, '.');
}
Run Code Online (Sandbox Code Playgroud)
以下setTimeout重载是最常用的重载:
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |