【发布时间】:2015-10-22 06:03:59
【问题描述】:
这是我的 Javascript 函数;
var searchbox=function(){
var _expandbox=function(count){
};
var _events=function(){
setTimeout(_expandbox,3000);
}
var _init=function(){
_events();
};
return {
init: _init
};
}();
$(document).ready(function(){
searchbox.init();
});
这里的问题是,如果我调用 setTimeout(_expandbox(4),3000) 之类的函数,它将不起作用。所以请帮助我如何在函数中添加参数。
【问题讨论】:
-
这就像谷歌上的第一击,带有框架 "setTimeout not working" -> stackoverflow.com/questions/20890943/…
-
我不是在谈论为什么 setTimeout 不起作用。我的问题是关于如何在模块化 javascript 模式中在函数中传递参数。
-
不管你使用什么模式,调用一个函数而不是在
setTimeout中引用它是你的问题,它是其他几个问题的重复,下面的答案是一样的作为那些重复。 -
让我们看一个更简单的例子:
foo(bar())。这将首先调用bar并将其返回值传递给foo。这就是几乎所有常见编程语言的工作原理。setTimeout(_expandbox(4),3000)也是如此。它调用_expandbox(4)并将返回值(undefined)传递给setTimeout。 IE。它相当于setTimeout(undefined, 3000)。但是,setTimeout期望它可以在将来调用一个函数,而不是undefined。
标签: javascript jquery