`

JavaScript中window.setTimeout的用法

阅读更多
JavaScript window.setTimeout() 的详细用法

setTimeout (表达式,延时时间)
setTimeout (表达式,交互时间)
延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次。
setTimeout 在执行时,它从载入后,每隔指定的时间就执行一次表达式
1,基本用法:
执行一段代码:
复制代码 代码如下:

var i=0;
setTimeout("i+=1;alert(i)",1000);

执行一个函数:
复制代码 代码如下:

var i=0;
setTimeout(function(){i+=1;alert(i);},1000);

//注意比较上面的两种方法的不同。
下面再来一个执行函数的:

代码如下:

var i=0;
function test(){
i+=1;
alert(i);
}
setTimeout("test()",1000);

也可以这样:
复制代码 代码如下:

setTimeout(test,1000);

总结:
setTimeout的原型是这样的:
iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])
setTimeout有两种形式
setTimeout(code,interval)
setTimeout(func,interval,args)
其中code是一个字符串
func是一个函数.
注意"函数"的意义,是一个表达式,而不是一个语句.
比如你想周期性执行一个函数
function a(){
//...
}
可写为
setTimeout("a()",1000)

setTimeout(a,1000)
这里注意第二种形式中,是a,不要写成a(),切记!!!
展开来说,不管你这里写的是什么,如果是一个变量,一定是一个指向某函数的变量;如果是个函数,那它的返回值就 要是个函数
2,用setTimeout实现setInterval的功能
思路很简单,就是在一个函数中调用不停执行自己,有点像递归
复制代码 代码如下:

var i=0;
function xilou(){
i+=1;
if(i>10){alert(i);return;}
setTimeout("xilou()",1000);
//用这个也可以
//setTimeout(xilou,1000);
}

3,在类中使用setTimeout
终于到正题了,其实在类中使用大家遇到的问题都是关于this的,只要解决了这个this的问题就万事无忧了。
呵呵。让我们来分析一下:
复制代码 代码如下:

function xilou(){
this.name="xilou";
this.sex="男";
this.num=0;
}
xilou.prototype.count=function(){
this.num+=1;
alert(this.num);
if(this.num>10){return;}
//下面用四种方法测试,一个一个轮流测试。
setTimeout("this.count()",1000);//A:当下面的x.count()调用时会发生错误:对象不支持此属性或方法。
setTimeout("count()",1000);//B:错误显示:缺少对象
setTimeout(count,1000);//C:错误显示:'count'未定义
//下面是第四种
var self=this;
setTimeout(function(){self.count();},1000);//D:正确
}
var x=new xilou();
x.count();

错误分析:
A:中的this其实指是window对象,并不是指当前实例对象
B:和C:中的count()和count其实指的是单独的一个名为count()的函数,但也可以是window.count(),因为window.count()可以省略为count()
D:将变量self指向当前实例对象,这样js解析引擎就不会混肴this指的是谁了。
话说回来,虽然我们知道setTimeout("this.count()",1000)中的this指的是window对象,但还是不明白为什么会是
window对象^_^(有点头晕...)
那我们可以想象一下这个setTimeout是怎样被定义的:
setTimeout是window的一个方法,全称是这样的:window.setTimeout()
那应该是这样被定义的:
复制代码 代码如下:

window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){
//.....代码
return timer//返回一个标记符
}

所以当向setTimeout()传入this的时候,当然指的是它所属的当前对象window了。
分享到:
评论

相关推荐

    JavaScript_window.setTimeout()_的详细用法

    ### JavaScript中的`window.setTimeout()`详解 #### 一、概述 在JavaScript编程中,`window.setTimeout()`函数是一个非常重要的异步编程工具,它允许开发者在指定的时间后执行特定的代码片段。这一特性对于实现...

    JavaScript中window.open用法实例详解

    下面我们将详细探讨`window.open()`的使用方法及其相关参数。 `window.open()`的基本语法如下: ```javascript window.open(url, name, features); ``` - `url`:这是一个必需的参数,表示要打开的网页URL。 - `...

    window.open最大化操作

    Window.open最大化操作 在Web开发中,我们经常需要弹出新的浏览器窗口,而在某些...然而,使用window.open方法来实现窗口的最大化需要使用setTimeout方法来延迟执行JavaScript代码,以便在子页面中实现窗口的最大化。

    JavaScript window.setTimeout() 的详细用法

    但是很多javascript新手对setTimeout的用法还是不是很了解。虽然我学习和应用javascript已经两年多了,但是对setTimeout方法,有时候也要查阅资料。今天对js的setTimeout方法做一个系统地总结。 setInterval与...

    精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!

    在JavaScript编程中,window对象下的setTimeout和setInterval是两个非常重要的定时器方法,它们能够让某些函数延迟执行或者每隔一段时间重复执行。但是,由于这两个方法运行在一个由脚本宿主模拟出来的Timer线程中,...

    js中SetInterval与setTimeout用法

    JS 中 SetInterval 与 setTimeout 用法 在 JavaScript 中,SetInterval 和 setTimeout 是两种常用的定时器函数,用于实现延迟执行或重复执行某些操作。下面我们将详细讲解这两种函数的区别和用法。 SetTimeout ...

    jsWindow对象及方法.pdf

    根据提供的文件信息,这是一篇关于JavaScript中的window对象及其方法的文档。window对象是Web浏览器中的一个全局对象,它代表了浏览器窗口本身,是JavaScript中的最顶级对象。以下是关于window对象及其相关方法的...

    js中SetInterval与setTimeout用法.pdf

    JavaScript 中的 SetInterval 与 setTimeout 用法 在 JavaScript 中,SetInterval 和 setTimeout 是两种常用的定时器函数,用于实现延迟执行或重复执行某些操作。本文将详细介绍这两种函数的用法和区别。 ...

    window对象的常用方法和作用

    在JavaScript中,所有的全局变量和函数都是window对象的属性和方法。本篇将详细阐述window对象的一些常用方法及其作用。 1. **open方法** `window.open(URL, 窗口名称, 窗口风格)` 用于打开新的浏览器窗口。`URL`...

    use-set-safe-timeout:提供“window.setTimeout”版本的 React 钩子可以清除卸载时的超时

    使用设置安全超时 一个React钩子,提供window.setTimeout的版本,该版本在卸载时会自行清除。 消除了不必担心在 React 组件中手动清除卸载超时的开销。 特征 提供可以像window.setTimeout一样调用的回调。 调用时...

    解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题

    `window.opener` 是JavaScript中的一个属性,它引用了创建当前窗口的窗口对象。在用户通过一个链接或脚本打开新窗口后,新窗口可以通过 `window.opener` 访问到打开它的父窗口。而 `window.close()` 方法则用于关闭...

    javascript程序题.doc

    1. 单击触发事件:JavaScript中的事件处理是通过事件监听器来实现的,例如`addEventListener`方法,可以绑定一个函数到特定的元素,当用户点击该元素时,绑定的函数会被执行。例如: ```javascript element....

    window对象方法属性全解

    Window对象在Web开发中扮演着至关重要的角色,它是JavaScript中全局对象的一个实例,几乎所有的其他JavaScript对象都是Window对象的后代。了解并熟练掌握Window对象的方法和属性,可以帮助开发者编写出性能更高、更...

    IFrame AND window对象

    `IFrame`的基本使用方法如下: ```html <iframe src="http://example.com" width="600" height="400"></iframe> ``` 其中,`src`属性定义了要加载的URL,`width`和`height`定义了`IFrame`的尺寸。 接下来,我们谈谈...

    Javascript中, setTimeout() 和 setInterval() 的方法

    总之,`setTimeout()`和`setInterval()`是JavaScript中用于处理时间调度的核心工具,它们的正确使用对于编写健壮的前端应用至关重要。理解它们的工作机制,并根据需求选择合适的函数,能够帮助开发者更好地控制代码...

    window.open不被拦截的简单实现代码(推荐)

    在JavaScript编程中,`window.open()` 是一个非常重要的函数,用于在浏览器中打开新的窗口或者重定向当前窗口到指定URL。然而,出于用户体验和安全考虑,现代浏览器通常会对无用户交互的自动弹窗进行拦截,以防止...

    在Javascript类中使用setTimeout第1/2页

    ### 使用JavaScript `setTimeout` 方法在类中实现延时调用 在现代Web开发中,JavaScript是一种广泛使用的编程语言,尤其适用于构建动态交互式网站。在实际应用中,开发者经常需要处理异步操作,例如定时器功能。...

Global site tag (gtag.js) - Google Analytics