关于call方法的问题

关于call方法的问题

图片描述
1.当cb调用call方法时里面带有滑动方向参数的direction是不是就传递到了106行这里的direction了?
2.同样是调用回调函数,能不能把93行写成cb(direction);这种形式?

正在回答

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

1回答

同学你好,解答如下:

1、理解是对的。

2、不可以。call方法的第一个参数用来改变cb中this的指向,后面的参数才是“传递出来的内容(数据)”。direction是我们需要传递出来的内容(数据),按照call的语法要求,它的位置不可以是第一位:

https://img1.sycdn.imooc.com//climg/63eb4b4709112cee06750087.jpg

https://img1.sycdn.imooc.com//climg/63eb4b9909ed999b09870507.jpg

祝学习愉快!

  • 慕勒8540250 提问者 #1

    老师,如果我不用call方法,直接写cb(direction);也不可以吗?

    2023-02-14 18:48:21
  • 好帮手慕久久 回复 提问者 慕勒8540250 #2

    可以,但是两种写法有区别。使用call时,可以保证cb中的this指向swipe方法的第一个参数,比如:

    https://img1.sycdn.imooc.com//climg/63ec3b4009e3389708500123.jpg

    此时很方便在cb中进一步操作该dom元素,比如:

    https://img1.sycdn.imooc.com//climg/63ec3b910987112707660128.jpg

    如果直接写成cb(direction),那cb中的this就不是上述dom元素,也就没法进一步操作上述dom了。

    从功能上讲,call的方式更容易拓宽功能。而且代码的写法并不唯一,实际开发中,技术好一点的程序员可能不屑于写cb(direction)这种简单的代码,如果同学不懂call的形式,那么就看不懂别人的代码,对开发不利。

    2023-02-15 09:59:04
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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