$.proxy( )语法麻烦讲解下,这里是三个参数,(2个也不明白)麻烦分别举个例子

$.proxy( )语法麻烦讲解下,这里是三个参数,(2个也不明白)麻烦分别举个例子

正在回答

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

2回答

同学你好, 讲解$.proxy()之前,先看如下小例子:

1.为一个div绑定事件,事件中传入一个函数。当点击事件触发的时候,就会执行函数里面的内容。

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

因为this指向函数的调用者,所以事件函数中this指向的div元素。那么在执行greeting方法时,div没有uesename这个属性,所以输出undefined:

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

2. 那么在如上事件中调用greeting,想要让this指向obj,就可以使用$.proxy()方法。如下:

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

$.proxy() 作用如果理解不了,可以换一个理解方式,即调用obj中的greeting方法,并强制设置this的指向。此时this指向的是obj,所以能够输出obj下面的uesename :

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

$.proxy() 方法的语法2,和上面的例子( $("div").click($.proxy(obj, "greeting"));)使用等价:

第一个参数是调用greeting方法,第二个参数是设置this的指向 ,即让this指向obj 。

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

所以也可以输出名字:

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

这个方法在实际开发中用的不多,简单了解一下即可。

另外,本站禁止粘贴外网链接或者图片的。建议先跟着课程学习,如果课程中有任何疑惑,可以在问答区中提问哦。

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

  • 迷失的小麦 提问者 #1
    hide:$.proxy(mode.hide,this,$elem)这个老师上课讲的,3个参数又怎么解释呢? 2个参数和3个参数顺序可以颠倒吗
    2020-02-06 11:46:37
  • 迷失的小麦 提问者 #2
    $(selector).proxy(function,context)$(selector).proxy(context,name) 这两个语法是不是全部写反了,数据所放的位置
    2020-02-06 11:58:56
好帮手慕夭夭 2020-02-06 15:34:02

同学你好,三个参数时,第一个参数mode.hide是要调用的函数,第二个是设置this的指向,第三个是给第一个参数mode.hide传递的参数。示例:

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

另外,参数顺序是否可以颠倒建议同学自己进行测试。很多疑惑,自己敲代码去验证就能解决的。老师这样做,也是为了督促同学多动手练习,多思考。你可以拿老师的代码去验证,也可以自己写一个例子去验证。总之,自己要尝试去解决自己的问题。不然,以后工作会寸步难行的。希望同学加油!

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

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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