以下是原文:
JS的this真是好难理解啊,求高手指点
百度的前端面试题,代码如下:
var a=5;
function test(){
a=0;
alert(a);
alert(this.a);
var a;
alert(a);
}
test();
new test();
在Chrome上run了一下,结果是
0
5
0
0
undefined
0
前三个结果好说,但对于第五个结果undefined我很疑惑,关键的就是这一句:
alert(this.a);
我的理解是,当运行到new test()这一句的时候,this指向了test,那么this.a应该就是
a=0;
这一句里面的0啊!为什么是undefined呢?求解答啊求解答!
------------------------------------------------------------------------------------------------------------------------------------------