谈谈我对callback && callback(obj);的理解

1.想要理解callback && callback(obj);首先我们先知道 & 和 && 的区别

& : 它会进行一个全判断,比如a&b,它会即判断a是true还是false,也判断b是true还是false;然后再将这两个值进行与运算。

&& :  它会进行一个非全判断,比如c&&d,它会先判断c是true还是false,如果c为false则直接返回结果(c的值),如何c为true则会继续判断d,然后就返回d的值(true或flase)。

2.理解完后就来说一下callback && callback(obj); 上代码

function a(callback){
  callback&&callback(3)
}

a(function(data){
  console.log(data);
})

结果:

首先回调函数的函数名是固定的,看上面代码的callback,代码是调用a函数,然后将回调函数的逻辑内容作为参数传入,在a函数中进行回调;

无论用callback && callback(obj);还是用callback & callback(obj);的结果都一样,只是如果callback是无参的话用&&的只需运算一次,而用&就会运算两次如下图:

function a(callback){
  callback&callback(3)
}

a(function(data){
  console.log(data);
})

总结,使用&&时只是为了在传入无参的回调函数运算时少运算一次,提高性能;在调用函数时方便识别有参回调函数和无参回调函数。这样只要用一行代码就可以调用有参或无参函数了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值