一道js题
<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变量的区别。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。