这个是this关键字的问题
说来说去就是this指针的问题,相同的。如果aa是类函数,类里面有个aa变量,然后函数参数又有个aa变量this则用来区分两个变量。
function aa(){this.name="aa";this.age="12";}
//function aa(){name:"bb";agr:"3"}
var obj =new aa();
alert(obj.age);
为什么这个代码产生的结果是12
//function aa(){this.name="aa";this.age="12";}
function aa(){name:"bb";agr:"3"}
var obj =new aa();
alert(obj.age);
这个为underfine???
这个问题很简单
//function aa(){this.name="aa";this.age="12";}
function aa(){name:"bb";agr:"3"}
var obj =new aa();
alert(obj.age);
这个为underfine???
你先new了一个函数对象,然后把函数对象的地址赋值给obj,但是你的函数对象什么属性值都没有,也就是说,你的age根本就没存放在对象里面,当你使用对象里面没有的属性变量的时候就会出现undefined。其实js的数据存储方式跟C#里面一样的,引用类型,对象是放在堆里面,对象的地址是放在栈里面的。
function aa(){this.name="aa";this.age="12";}这个函数,当你new了aa()这个函数对象的时候,你这个对象已经存放了age属性,所以这个时候age是有值的。看来楼主对数据的存储方式不大了解啊!