构造函数中a的值为什么变成undefined

以下代码在浏览器中运行弹出的结果依次是
undefined undefined
为什么呢?

var a=5;function A(){
    alert(a);
        var a=10;
    alert(this.a);
}new A();


陪伴而非守候
浏览 585回答 1
1回答

一只萌萌小番薯

这涉及到变量提升的问题,构造函数内部的a变量会先提升,相当于这样function A(){     var a;     alert(a);     a = 10;     alert(this.a); }所以a只是被定义了没赋值,所以是undefined同理第二个alert里this指向的是你创造出来的实例,实例当中没有a,构造函数A中的a只是A函数的静态成员。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript