【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); 不能运行。
古今天下之庸人皆以一惰字致败