以下代码在浏览器中运行弹出的结果依次是undefined undefined为什么呢?
var a=5; function A(){ alert(a); var a=10; alert(this.a); } new A();
小伙看你根骨奇佳,潜力无限,来学PHP伐。
这涉及到变量提升的问题,构造函数内部的a变量会先提升,相当于这样
function A(){ var a; alert(a); a = 10; alert(this.a); }
所以a只是被定义了没赋值,所以是undefined
同理第二个alert里this指向的是你创造出来的实例,实例当中没有a,构造函数A中的a只是A函数的静态成员。
这涉及到变量提升的问题,构造函数内部的a变量会先提升,相当于这样
所以a只是被定义了没赋值,所以是undefined
同理第二个alert里this指向的是你创造出来的实例,实例当中没有a,构造函数A中的a只是A函数的静态成员。