解决方案 »

  1.   

    setTimeout()方法的参数必须是函数的引用或字符串setTimeout(a(),1000);  中a()是立即执行a函数,并将a函数的return返回值返回给setTimeout()方法,这显然不对。
    正确的方法是setTimeout(a,1000);setTimeout('a()',1000); 是当时间延迟到了之后,解释这个字符串,并在全局环境下执行字符串中的代码。
    第一个问题中a函数在闭包的局部环境中,全局环境下找不到a函数,程序出错
    第二个问题中a函数在全局环境下,就可以正常执行
      

  2.   


    setTimeout()方法的参数必须是函数的引用或字符串setTimeout(a(),1000);  中a()是立即执行a函数,并将a函数的return返回值返回给setTimeout()方法,这显然不对。
    正确的方法是setTimeout(a,1000);setTimeout('a()',1000); 是当时间延迟到了之后,解释这个字符串,并在全局环境下执行字符串中的代码。
    第一个问题中a函数在闭包的局部环境中,全局环境下找不到a函数,程序出错
    第二个问题中a函数在全局环境下,就可以正常执行
      

  3.   

    第一个问题,setTimeOut(参数1,参数2),参数1,必须是一个函数,参数2是一个时间;
    setTimeout( )是设定一个指定等候时间 (单位是千分之一秒, millisecond), 时间到了, 浏览器就会执行一个指定的 method 或 function, 执行一次setInterval();方法才会不停地调用函数
      

  4.   

    你的代码应该改成
    (function(){
          function a()
         {
              console.log('asdf');
         }
         setTimeout(a,1000); })
      

  5.   

    试试这样就知道了,
    function a(){
      alert(333);
    }
    setTimeout(a,3000)