您的位置:首页 > 职场人生

js面试题

2015-03-26 22:26 197 查看
刚刚在一个面试题中看到一个这样的题目,指出下面一段js的问题所在:

 var Obj=function(msg){

                    this.msg=msg;

                    this.shout=function(){

                                  alert(this.msg);

                   }

                  this.waitAndShout=function(){

                                  

                                setTimeout(this.shout, 2000);

                 }

        }

        var aa=new Obj("abc");

        aa.waitAndShout();

我的回答是这样的   

this.waitAndShot=function(){

               setTimeout( function(){

                                   this.shout();

                                   },2000);

   }

原因就是this.shout,返回的是函数的引用,即对象的方法。而this.shout()将会立即执行函数,setTimeout()是以普通函数执行的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: