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()是以普通函数执行的。
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()是以普通函数执行的。
相关文章推荐
- 分析一个JS面试题
- 用js实现上传图片前的预览(TX的面试题)
- js面试题
- HTML+CSS+JS面试题
- 【javascript基础】一份JS面试题
- 前端常见面试题【JS】
- 【JS每日练习】阿里巴巴web前端开发面试题
- Web前端面试题 Js把URL中的参数解析为一个对象
- 一道个人感觉比较有水平的JS面试题,反正我看错了
- 用js实现上传图片前的预览(TX的面试题)
- js面试题——为javascript增加删除重复元素的方法
- js面试题
- 史上一道超级变态JS面试题,考考你的Math
- 一道js的面试题,很好的
- 软件公司常问的技术面试题(.net sql css js html)
- 面试题(.net sql css js html)
- 网易JS面试题与Javascript词法作用域说明
- JS面试题及答案 (2011-10-19 14:52:37)
- js面试题
- JS面试题《一》