$.proxy(this.show,this)中的this

$.proxy(this.show,this)中的this

this指向调用方法的对象,this.$elem调用了hover方法,所以在hover方法内部的this指向了dropdown.$elem,但是不懂为什么$.proxy(this.show,this)中的this指向的是dropdown,proxy()难道是dropdown调用的吗?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,

在不用$.proxy()方法的时候,hover方法中的this指向的是调用方法的元素:

http://img1.sycdn.imooc.com//climg/5d70e7be00016cd705830187.jpg

而show方法是定义在dropdown上的:

http://img1.sycdn.imooc.com//climg/5d70e7e700017c8c07940163.jpg

所以用元素来调用show是错误的,需要用dropdown来调用。

用了$.proxy()方法之后,第二个参数this指向的是当前上下文,也就是dropdown,让dropdown来调用show方法,这样就改变了this.show中this的指向。

自己可以再理解下,祝学习愉快!

  • PHXL 提问者 #1
    这里是jQuery调用proxy方法,为啥this不指向jQuery呢
    2019-09-05 19:13:02
  • 好帮手慕星星 回复 提问者 PHXL #2
    这个方法就是这样规定的哦,第二个参数指向的是当前上下文,并不是调用proxy方法的jQuery,记住这样使用就可以。
    2019-09-05 19:22:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师