在java脚本中执行某些功能之前我需要延迟。我可以使用setTimeout,但问题是我有两个传递给函数的变量。在这种情况下我需要为setTimeout设置语法。任何人都可以帮忙吗?
答案 0 :(得分:5)
在任何现代JavaScript环境中,您可以在间隔之后包含参数:
setTimeout(foo, 2000, 'a', 'b');
这将在2000ms之后调用foo('a', 'b')
。
在过时的JavaScript环境(例如某些过时浏览器中的环境)中,您必须使用包装函数:
setTimeout(function() {
foo('a', 'b');
}, 2000);
但,这两者之间存在很大差异:在第一种情况下,当您致电setTimeout
和结果时,会评估所有表达式该评估的内容是发送到setTimeout
并最终发送到foo
的内容,而使用包装函数,评估发生在延迟之后,稍后调用foo
时。
使用Function#bind
:
setTimeout(foo.bind(null, 'a', 'b'), 2000);
以下是差异的一个例子:
var a = 1;
setTimeout(foo, 100, a); // foo will show 1
a = 2;
setTimeout(foo.bind(null, a), 100); // foo will show 2
setTimeout(function() {
foo(a); // foo will show 3 even though
// we set it *after* scheduling
// the call
}, 100);
a = 3;
function foo(value) {
console.log(value);
}

答案 1 :(得分:1)
setTimout(function () {
yourfunction(variable1, variable2)
}, delay)
答案 2 :(得分:1)
Dictionary's