也想请问下关于call的问题

也想请问下关于call的问题

我看了问答区另一个同学问的这个call函数的问题,我也是想问这一句_this.cancel && _this.cancel.call(_this,e)

这个意思是如果_this.cancel存在,也就是用户传了cancel函数过来,则执行_this.cancel.call(_this,e)

我想请问下,_this.cancel.call(_this,e)是不是就是_this.cancel啊,this的指向也没有变啊,还有e传进来有什么作用呢?

非常感谢!

正在回答

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

1回答

同学你好,1、是的,这里_this.cancel存在的话,才会执行_this.cancel.call(_this,e);

2、call()是调用一个对象的一个方法,用另一个对象替换当前对象,所以这里是_this来调用_this.cancel的方法。可以分别输出一下_this与_this.cancel是不同的。

3、传递进来的e,在这里没有使用到,但是是作为参数的,例,就是下面的e,可以输出测试下,若不传递的话,输出的会是undefined

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

若能帮助到你,望采纳。

祝学习愉快!

  • hpbrave 提问者 #1
    感谢回答,我想请问下“_this来调用_this.cancel的方法”,为什么不能直接写成_this.cancel呢?我试了下似乎也是可以的。因为感觉_this.cancel.call(_this,e)也没有改变调用cancel函数的this的指向(都为_this),不知道为什么不直接调用。非常感谢!
    2018-11-12 12:44:23
  • 好帮手慕糖 回复 提问者 hpbrave #2
    同学你好,这是两种方式,直接调用也是可以的。祝学习愉快!
    2018-11-12 16:16:40
  • hpbrave 提问者 回复 好帮手慕糖 #3
    非常感谢!
    2018-11-12 18:07:29
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
热门框架Vue开发WebApp 18版
  • 参与学习           人
  • 提交作业       209    份
  • 解答问题       3299    个

本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。

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

在线咨询

领取优惠

免费试听

领取大纲

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