javascript - 构造函数中a的值为什么变成undefined
本文介绍了javascript - 构造函数中a的值为什么变成undefined的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
以下代码在浏览器中运行弹出的结果依次是
undefined undefined
为什么呢?
var a=5;
function A(){
alert(a);
var a=10;
alert(this.a);
}
new A();
解决方案
这涉及到变量提升的问题,构造函数内部的a变量会先提升,相当于这样
function A(){
var a;
alert(a);
a = 10;
alert(this.a);
}
所以a只是被定义了没赋值,所以是undefined
同理第二个alert里this指向的是你创造出来的实例,实例当中没有a,构造函数A中的a只是A函数的静态成员。
这篇关于javascript - 构造函数中a的值为什么变成undefined的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文