>  Q&A  >  본문

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

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

var a=5;
function A(){
    alert(a);
        var a=10;
    alert(this.a);
}
new A();
伊谢尔伦伊谢尔伦2771일 전569

모든 응답(1)나는 대답할 것이다

  • 迷茫

    迷茫2017-04-11 12:14:57

    这涉及到变量提升的问题,构造函数内部的a变量会先提升,相当于这样

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

    所以a只是被定义了没赋值,所以是undefined

    同理第二个alert里this指向的是你创造出来的实例,实例当中没有a,构造函数A中的a只是A函数的静态成员。

    회신하다
    0
  • 취소회신하다