老师帮我在看一下这个问题

正在回答

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

2回答

同学你好,关于同学的问题回答如下:

1、是的。逻辑与&&运算符,如果第一个不为真,就不会再往下执行了,所以如果传进来的方法cancel为null,则不会再往下执行。||运算符不会,它会一直往后判断,如果有真的就返回真,没有就返回假。

2、理解的是正确的。

好帮手慕粉 2020-07-28 14:48:48

同学你好,关于同学的问题回答如下:

1、_this.cancel && _this.cancel.call() 是逻辑与表达式,当第一个操作数可以转换为true时,才会返回第二个操作数。如果转换为false,就不返回第二个操作数,即不会调用了。如果直接写_this.cancel(),那么当cancel没有传递实参时,默认值为null ,null调用就会报错了。

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

所以写成逻辑与的方式更好。

2、call的第一个参数就是设置this的指向,这里就是让cancel方法中的this指向_this。这里传递的参数_this和e没有用上,可以不传:

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

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

  • 提问者 小杨同学呀 #1
    && 不应该是两者都满足 代表与或者并且吗 || 代表只取一个值 代表或
    2020-07-28 15:44:58
  • 提问者 小杨同学呀 #2
    也就是说原本this是指向Cancel的 按照方法里的指向_this的指向,e代表参数, 因为_this 指向的是MSg 也就是Msg调用cancel的方法
    2020-07-28 15:51:16
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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