leo列

导航

setTimeout吾之愚见

最近在公司做项目,遇到用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当自身指针

 

这个肯定不完美,如果以后学习到更多的方法会补充。

posted on 2012-08-12 13:02  leo列  阅读(814)  评论(0编辑  收藏  举报