proxy的问题

proxy的问题

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

同样是this为什么第一个this指的就是时间的绑定着,第二个this指的就是时间外的this即这个实例化对象。还是说这个方法就是这样定义的吗

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

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

1回答
好帮手慕慕子 2020-04-11 16:18:05

同学你好,理解有些偏差,这里的两个this都是指向Dropdown函数实例化对象。

因为hover事件中的this指向触发事件的元素,也就是this.$elem,而show和hide方法是在Dropdown函数上的,元素上并没有,所以需要使用$.proxy 方法改变修改this的指向, $.proxy接受一个已有的函数,并返回一个带特定上下文的新的函数。将this指向Dropdown函数,而不是执行hover事件的元素this.$elem。

改变this指向后, 可以打印一下show方法里的this指向

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

打印结果

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

没有改变this指向,会出现报错。

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

打印结果

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


综上可知, this都是指向Dropdown函数实例化之后的对象,同学可以结合示例代码测试理解下。

如果我的回答帮助到了你,欢迎采纳!祝学习愉快~

  • 提问者 慕用6004130 #1
    意思就是第二个this将函数里面的this指向了实例化函数吗
    2020-04-11 16:28:35
  • 好帮手慕慕子 回复 提问者 慕用6004130 #2
    同学你好,是的,可以这么理解,祝学愉快~
    2020-04-11 16:49:25
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

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

在线咨询

领取优惠

免费试听

领取大纲

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