0

我在我的 javascript 函数中使用下面的代码。我想在 10 秒后调用这个函数。但是该功能立即被触发!?!不知道发生了什么。

<script>
  function testing() {
    //other stuff
    setTimeout(testing2('value'), 10000);
  }
  function testing2(value) {
    //other stuff
  }
</script>
4

3 回答 3

2

testing2被立即调用,因为你用参数写了它。
setTimeout需要一个函数作为第一个参数。

如果你写testing2('value')javascript 当然必须首先执行你testing2的得到结果,然后才将结果传递给setTimeout

于 2013-03-10T08:44:05.763 回答
1

您需要将函数作为参数传递,而不是调用该函数。

setTimeout(function(){
    // Inside the callback we do what we want.
    testing2('value');
}, 10000);
于 2013-03-10T08:45:01.770 回答
1

问题是您将返回的值testing2('value')而不是函数传递给setTimeout.

尝试这个。

setTimeout(function() {
    testing2('value');
}, 10000);
于 2013-03-10T08:45:59.490 回答