大家都知道用setTimout(函数名,延迟时间)比用setTimeout("可执行代码",延迟时间)效率要高。
function say() {
alert("Hello,www.51better.info");
}
setTimeout(say,1000);
如果我们的say是这样定义的:
function say(name) {
alert("Hello," + name);
}
setTimeout该怎么调用我们亲爱的say呢?
这样吗?
setTimeout(say("Tianlang",1000));
这样你会发现延迟是没有起作用的。无论你设置延迟执行是1000还是100000我们亲爱的say都会在加载页面时就执行!
应该这样?
setTimeout(say,1000,"Tianlang");
这样可以了括号在谷歌和火狐浏览器下括号结束,那IE呢,你会发现IE很屌的,无论你第三个参数传的是Hu还是奥巴马,他一律不关只Hello,undefined。
他根本不支持传第三个参数。
现在你可以这样调用我们亲爱的say:
setTimeout(function(){say("奥巴马");},1000);
就是在我们亲爱的say外面在包一层匿名函数。当然奥巴马也可以是个变量
var name = "奥巴马";
setTimeout(function(){say(name);},1000);
如有纰漏请不吝指正,转载请注明出处,谢谢!
©天朗工作室
原文链接:
http://blog.51better.info/articles/2013/01/06/1357444873121.html
分享到:
相关推荐
但在JavaScript中,如何向setTimeout和setInterval传递参数呢?我们首先要了解,这两个函数是把要执行的代码插入到JavaScript引擎维护的一个代码队列中,然后在指定时间后,JavaScript引擎会去执行这个队列中的代码...
在JavaScript编程中,`setInterval`是一个非常常用的函数,它用于定期执行某个任务。然而,如果不正确地使用,`setInterval`可能导致各种性能问题。这篇博客文章“setInterval引起的性能问题”探讨了这些问题以及...
其中,`function`参数是要执行的函数,而`delay`参数是间隔时间,即函数执行之间等待的毫秒数。 **工作原理** `setInterval`不会立即执行函数,而是会在延迟`delay`毫秒后安排执行。一旦执行完毕,如果页面仍然...
setTimeout函数的第二个参数(延时时间)只是告诉JavaScript再过多长时间把当前任务添加到队列中。如果队列是空的,那么添加的代码会立即执行;如果队列不是空的,那么它就要等前面的代码执行完了以后再执行。因此,...
前端开发中,我们会会经常使用定时器setinterval setTimeout等,但当我们离开页面时,定时器会被阻塞,导致我们再回到页面的时候定时任务会混乱运行,为些我的解决方案写了个简单demo,希望对你有所帮助
### window.clearInterval与window.setInterval的用法 在前端开发中,经常需要用到定时器来实现某些功能,例如计时器、轮播图等。而`window.setInterval`和`window.clearInterval`是JavaScript中用于处理定时任务的...
这里的`function`是要执行的函数,`delay`是等待的时间(以毫秒为单位),`param1, param2, ...`是传递给该函数的参数。例如,我们可以创建一个简单的延时提示框: ```javascript setTimeout(function() { alert('...
在Vue.js框架中,`setTimeout()` 和 `setInterval()` 是JavaScript的原生函数,用于实现异步编程,即延迟或周期性地执行某段代码。然而,在Vue的上下文中使用这两个函数时,需要注意一些特定的问题,主要是由于...
与`setTimeout()`类似,`setInterval()`的第二个参数也是一个延迟时间,但区别在于它会每隔这个时间重复执行提供的函数。这也意味着,如果执行函数本身需要的时间超过设定的延迟,可能会出现函数调用的重叠。 考虑...
- `param1, param2, ...`(可选):如果函数需要参数,可以在这里传递。 当你调用`setInterval`时,它会立即返回一个唯一的`interval ID`,这个ID可以用于通过`clearInterval`函数取消定时器。 让我们来看一个简单...
其中,`function` 参数是需要定期执行的函数,而 `delay` 参数是以毫秒为单位指定的时间间隔。例如,我们想每隔1秒钟打印"Hello, World!",可以这样写: ```javascript setInterval(function() { console.log('...
首先,`setInterval()`的基本语法是`setInterval(function, time)`,其中`function`是你想要周期性执行的函数,而`time`参数是以毫秒为单位的时间间隔,表示两次调用函数之间的时间。 1. **动画基础**: 动画效果...
`setInterval`接收两个参数:一个是要执行的函数或字符串(代表要执行的代码),另一个是执行间隔的时间(以毫秒为单位)。这个函数会按照指定的时间间隔重复调用提供的函数,直到 clearInterval 被调用来停止它。...
这样,`setInterval` 将接受额外的参数,并在执行回调时传入。 以上方法同样适用于`setTimeout`。需要注意的是,`apply` 和 `call` 方法用于改变函数调用的上下文和参数,而`slice`方法用于从`arguments`对象中...
`setInterval`还支持更高级的用法,例如传递对象和方法名作为参数,这种方式更加灵活,可以实现更为复杂的逻辑: ```javascript var myObj = { update: function() { console.log("定时更新"); } }; // 使用...
在这个例子中,我们创建了一个`autoRedirect`函数,它接受URL和时间作为参数,并在指定时间后执行跳转。同时,我们添加了一个取消跳转的按钮,当用户点击时,会清除定时器,防止跳转发生。 总结起来,通过...
setInterval(code,millisec[,”lang”]) setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 参数 描述 code 必需,要调用的函数或要执行的代码串。 millisec 必需,周期性执行或调用...
- **param1, param2, ...**:可选参数,传递给`function`的参数。 例如,下面的代码会在页面加载后每隔一秒(1000毫秒)在控制台输出一次“Hello, World!”: ```javascript window.onload = function() { var ...
在使用 setTimeout 和 setInterval 函数时,需要注意参数的传递方式和调用方式。使用闭包可以正确地传递参数,避免出现意外的结果。同时,需要注意函数的调用方式,例如 `setTimeout(auto, 4000)` 和 `setInterval...