最近在公司做项目,遇到用setTimeout的情况比较的多,所以想单独的把这个知识点拿出来详细的了解下,看了一些资料,对setTimeout的用法发表一些看法,可能等我学得高深了回过头来看看自己的看法,觉得讲得并不那么的好,但是谨以此篇记录下来我学习的足迹已经对自己的交待。
一,不带参数的
a,setTimeout("alert('3秒后执行我')",3000); //直接把执行语句放在双引号里当参数
b,setTimeout(function(){alert("3秒后执行我");},3000); //直接把一个包含执行语句的匿名函数当参数
c,setTimeout(count,3000); //把指针当参数
d,setTimeout("count()",3000); //把count()函数放在双引号里当参数,相当于用eval()函数来解析他
e,setTimeout(function(){count();},3000); //把要执行的函数放在一个匿名函数里当参数
f,setTimeout(arguments.callee,3000); //如果是调用自身的话可以直接用arguments.callee方法,优于把自身函数的指针,因为arguments.callee始终指向自身,不用管函数名变动的问题。
二,带参数
例如这个函数:
function count(arg1,arg2...) { .................... }
a,setTimeout("count('"+arg1+"',"+"'"+arg2+"',"+....+"')",3000); //不推荐这种方法,麻烦,还容易弄错
b,setTimeout(count,3000,arg1,arg2....); //第一个参数是指针,第二个是延迟执行的时间,后面紧跟着的是调用函数所执行的参数
c,setTimeout(function(){count(arg1,arg2...);},3000); //直接把要执行的函数已经参数放在匿名函数里当setTimeout的第一个参数
c,setTimeout(arguments.callee,3000,arg1,arg2....); //如果是调用自身的话可以用arguments.callee当自身指针
这个肯定不完美,如果以后学习到更多的方法会补充。