本帖最后由 MADfox1983 于 2010-06-23 16:44:46 编辑

解决方案 »

  1.   

    <script>
    function classA(){
    }
    classA.prototype.name="123";
    classA.prototype.did1=function(){setInterval(function(o){return function(){o.did2()}}(this),700);
    }classA.prototype.did2=function(){
    alert(this.name)
    }var obj=new classA();
    obj.did1();
    </script>
      

  2.   


    <script>
    function classA(){}
    classA.prototype.name="123";
    classA.prototype.did1=function(){
    setInterval((function(obj){return function(){obj.did2()};})(this),3000);
    }
    classA.prototype.did2=function(){
    alert(this.name)
    }var obj = new classA();
    obj.did1();</script>
      

  3.   

    你传this.did2()是个方法调用,当然可以执行一次,然后此方法返回了undefined,这个undefined值随后成了setInterval的第一个参数,这当然不行。
    只需要小小的改动即可,
    把setInterval(this.did2,700);====》》》改为
    setInterval("obj.did2()",700);