$.proxy(mode.show,this,$elem)

$.proxy(mode.show,this,$elem)

老师上课讲的这句话,是不是固定的语法?麻烦讲解下,有三个参数,我觉得$.proxy(mode.show,$elem)就可以了

正在回答

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

2回答

同学你好,请问是说this参数没有使用到吗?因为mode.show方法没有使用到this指向,因此这里的this只是用来占位的。

另,本方法是可以接受三个参数的,第一个参数mode.show是要调用的函数,第二个是设置this的指向,第三个是给第一个参数mode.show传递的参数。具体解释可以看下另一个问题,详细的为同学解释了:https://class.imooc.com/course/qadetail/189721

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

好帮手慕码 2020-02-06 15:05:26

同学你好,不是固定死的语法,不过你的意思大致是正确的。在这里第一个参数是mode.show,并不是this.show,所以并不存在this指向的问题,可以理解为用this来占位。

但是这个占位是必须要占的,假如去掉this,如下:

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

会报错:

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

第三个参数,用来传参数的,将$elem元素传入mode.show方法中:

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

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

  • 提问者 迷失的小麦 #1
    首先,为什么传了参数没有执行?hide:mode.hide($elem)不就是直接执行了函数。其次,这种写法为什么是正确的$.proxy(mode.hide,this,$elem)?我理解的正确写法是$.proxy(mode.hide,this)($elem)(听了老师的讲解新的想法)(感觉从语法的角度想不通)
    2020-02-06 15:14:37
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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