解决方案 »

  1.   

    就一个 alert(this.msg);是面试题?,想面试啥?  
    莫名其妙的用了setTimeout
      

  2.   

    setTimeout(this.shout(), 2000);setTimeout(this.shout, 2000);
    就是 执行 不执行呗 不要被代码影响对语法的判断
      

  3.   

    有没有括号都不对。setTimeout(this.shout(), 2000);
    有括号是立即执行this.shout(),和setTimeout没有关系了setTimeout(this.shout, 2000);
    没有括号是返回函数的引用,当setTimeout定时执行函数时是以普通的函数来执行的,不是以Obj对象的方法来执行,函数中的this===window。正确的方法是this.waitAndShout=function(){
        var _this = this;
    setTimeout(function(){
    _this.shout();
    }, 2000);
    }