首页 新闻 搜索 专区 学院

javascript中这两个函数是否相同

0
悬赏园豆:10 [已解决问题] 解决于 2012-01-27 18:16
function aa(){this.name="aa";this.age="12";}
function aa(){name:"bb";agr:"3"}

iia的主页 iia | 初学一级 | 园豆:6
提问于:2012-01-21 18:15
< >
分享
最佳答案
0

这个是this关键字的问题

iia | 初学一级 |园豆:6 | 2012-01-27 15:59
其他回答(2)
0

说来说去就是this指针的问题,相同的。如果aa是类函数,类里面有个aa变量,然后函数参数又有个aa变量this则用来区分两个变量。

大烧饼的实验室 | 园豆:265 (菜鸟二级) | 2012-01-23 17:35

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???

支持(0) 反对(0) iia | 园豆:6 (初学一级) | 2012-01-26 11:49
0

这个问题很简单

//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是有值的。看来楼主对数据的存储方式不大了解啊!

收获园豆:10
ljcheibao | 园豆:132 (初学一级) | 2012-01-26 15:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册