为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

陪伴而非守候 2018-09-14 09:09:29
以下代码在浏览器中运行弹出的结果依次是undefined undefined为什么呢?var a=5;function A(){     alert(a);         var a=10;     alert(this.a); }new A();
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

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

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

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

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


查看完整回答
反对 回复 2018-09-28
  • 1 回答
  • 0 关注
  • 584 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信