码迷,mamicode.com
首页 > Web开发 > 详细

一道js题

时间:2015-04-06 12:36:41      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

<script>
var a = 5;
function test(){
this.a = 10; 
a = 15
this.func = function(){
var a = 20 ;
alert(this.a);
}
}
var tt = new test();
tt.func();
setTimeout(tt.func, 1000);
</script>

  这是之前看到的一道js题,其中有a出现了五次,那么到底输出什么呢,我想看了我上一个随笔你应该就明白了。

这个题主要考察两个知识点:

1、settimeout的作用域问题

2、js作用域问题。this问题。

答案是:10 (第一次) 15(第二次)原因是:settimeout延时函数中的this是中是window全局对象。

另外题目中多次的a出现是为了混淆视听。要区分this.a和a变量的区别。

 

一道js题

标签:

原文地址:http://www.cnblogs.com/dunken/p/4395676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!