老师,这里的this为什么就指的是dropdown了?

正在回答 回答被采纳积分+1

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

1回答
好帮手慕星星 2019-03-15 11:33:56

你好,

jquery中$.proxy()方法的使用,第一个参数是函数名,第二个参数是函数所在的对象名称。 

this.$elem.hover()事件触发的时候,调用了this.show方法,this指向的是触发事件的元素:

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

而show方法是在Dropdown函数上的,所以this就会有指向问题。

为了解决这个问题,使用了$.proxy()方法,将this强制指向Dropdown,this可以理解为所在的环境实在Dropdown函数中。

可以测试理解下,祝学习愉快!

  • 是不是,这里的this.show,虽然有this,且this指向的是this.$elem,但是本身的show方法是在dropdown上的,所以第二个this将第一个this指向的this.$elem强制变更为第二个this所代表的的dropdown?
    2019-09-02 20:57:56
  • 你好,同学理解是正确的,很棒哦!祝学习愉快~
    2019-09-03 09:35:16
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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