原生的setTimeout有一个缺陷,你传递的第一个函数不能带参数。即浏览器
setTimeout(func(parma),1000);
这样的语句是不生效的(不过在不一样浏览器中有不一样的错误,总之都没法达到预期效果)闭包
这时,咱们就能够用闭包来实现这个效果了。函数
function func(param) { return function() { alert(param); } } var f = func(1) setTimeout(f, 1000);