为了账号安全,请及时绑定邮箱和手机立即绑定

求问在javascript中的this指向谁?

求问在javascript中的this指向谁?

潇潇雨雨 2022-03-23 19:15:13
function a(){obj1.b(this)}然后调用obj.a()b函数里面的this指向谁,是指向obj还是指向obj1,为什么,谢谢了
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

his是指向当前引用对bai象du
this.name = name;
-- 这个好理解,指向User对象,不是zhiUser function
this.my_alert = function() {
alert(this.name);
}
function 一个函dao数,这么理解有zhuan点“问题”,正shu确的说法是my_alert 是一个函数类型变量
my_alert 是User的一个属性,他本身是funtion类型,所以这个function类型中的this指向当前对象
this对象bai是在运行时基于函数的执行du环境绑定的,它可能是全局对象zhi或者其他的某个对象,随着函数的执行环境dao不同,this的值也会不一样。但是总有一个原则,那就是this指的是调用函数的那个对象。
还有另一个原则:当没有明确的调用函数的那个对象时,this指向全局对象global,浏览器模式下就是window了。
JavaScript:this是什么?
定义:this是包含它的函数作为方法被调用时所属的对象。
说明:这句话有点咬嘴,但一个多余的字也没有,bai定义非常准确,我们可以分3部分来理解它!
1、包含它的函数。2、作为方法被调用时。3、所属的对象。
看例子:
function to_green(){
this.style.color="green";
}
to_green();
上面函数中的this指的是谁?
分析:包含this的函数是,to_green
该函数作为方法被调用了
该函数所属的对象是?我们知道默认情况下,都是window对象。
OK,this就是指的window对象了,to_green中执行语句也就变为,window.style.color="green"
这让window很上火,因为它并没有style这么个属性,所以该语句也就没什么作用。



查看完整回答
反对 回复 2022-03-28
?
忽然笑

TA贡献1806条经验 获得超5个赞

谁调用的a就指向谁,如果没写调用的对象,那么是windows。
obj.a();这时a里面在b后面括号里的this是obj。
如果直接调用a(),那么里面的this是windows(所有全局变量函数的对象)

查看完整回答
反对 回复 2022-03-28
  • 2 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号