我下面一段代码,运行时总报一个错误,在网上查了好久,就是这么做的呀.
var time1 = window.setTimeout(clear(), 0); 
  function clear() { 
    clearTimeout(time1); 

解决方案 »

  1.   


    var time1 = window.setTimeout("clear()", 0); 
      

  2.   

    第一个参数是要执行的语句,用字符串表示
    比如你要执行“alert(123)”,就可以直接写setTimeout("alert(123)",1000)
      

  3.   


    var time1 = window.setTimeout("clear()", 0); function clear() 

        clearTimeout(time1); 
      

  4.   

    var time1 = window.setTimeout(clear, 0); 
      function clear() { 
        clearTimeout(time1); 
      

  5.   

    var time1 = window.setTimeout("clear()", 0); 
    function clear() 

        clearTimeout(time1); 
      

  6.   

    var time1 = window.setTimeout("clear()", 0); function clear() 

        clearTimeout(time1); 

    函数要用""包含起来
      

  7.   

    要么你这么写
    var time1 = window.setTimeout("clear()", 0); 
    要么你就这么写
    var time1 = window.setTimeout(clear, 0); 
      

  8.   

    window.setTimeout(clear(), 0); 的语义是0毫秒之后执行“clear方法的返回值”,当然,如果你的返回值是个Function类型,那也能运行,不过不是主流做法拉。比较标准的:window.setTimeout(clear,0)  --这里clear是一个函数指针指向你定义的Function类型对象。或者你也可以干脆写匿名函数:
    var txt = "gagaga";
    window.setTimeout(function(){
      alert(txt);
    },0)
    这样做的好处匿名函数是运行在当前的闭包中,可以访问当前闭包中的是变量。如果是 window.setTimeout(clear,0) 则clear是在函数体定义的闭包位置中运行的。