【js】setTimeout几种使用方式

根据笔者的经验,总结了setTimeout的几种使用方式:

1.setTimeout("fun()",time),这是大部分人经常使用的。

2.setTimeout(fun,time)

只引用函数名字,也可运行,但是要注意的是:如果fun是某个对象的方法,则fun函数内的this此时被当做window。

eg:

var obj=
{
   "p1":"obj的属性p1",
   "fun":function()
   {	      
	   alert(this.p1);
   },		
};
setTimeout(obj.fun,1000);

 运行后的结果,是undefined。用函数式对象定义对象也是此种结果。用方法1则可以输出正确的结果。

3.setTimeout(fun(),time)

不能正确执行,因为fun()会立即执行,没有延迟time时间后执行。

4.setTimeout(function(){},time)

可以正确执行。

5.setTimeout("js语句",time)

可以正确执行。 js语句可以是多条语句。

eg:

setTimeout("var a=1;alert(a)",1000);

6.setTimeout(js语句,time)

注意:单条语句可以正确执行,但是多条语句则不能运行。

eg:

setTimeout(var a=1;alert(a),1000);  不能运行。

 

 

posted @ 2012-06-29 19:00  diguanianzhu  阅读(1306)  评论(3编辑  收藏  举报