搜索

以下代码为什么objAge 能调用this.age,myFun:function(){} 里...

发布网友 发布时间:2024-09-28 14:50

我来回答

1个回答

热心网友 时间:2024-10-30 20:54

因为这里的两个this并不是指向同一个对象,
objAge:this.age, //这个this是指window
console.log(this.name+'年龄'+this.age) //这里的两个this是指obj
如果改成
console.log(this.name+'年龄'+this.objAge)
那就没问题了。
this是指调用者,也就是说谁调用自己的那么谁就是this。
objAge:this.age, 这里是对象属性值的直接赋值,程序运行到这里的时候,调用者仍然是最顶层对象也就是window
myFun:function(){ 而这里则是声明对象的一个方法,function里面的代码并不是立即执行的。
obj.myFun(); 这个时候就是对对象obj的方法myFun进行调用了,调用者毫无疑问就是obj对象,那么上述function内代码中的this就变成obj了。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top