微商城项目 请求接口封装中出现 callback && callback() 原理

http://www.imooc.com/wenda/detail/522579

 

因为逻辑运算符&& ||通常具有短路求值的特性
即,如果只求部分值就可以得到整个表达式的值,那么剩下的部分就不会再被求值。
例如:
f()&&g(),如果f()为false,那么g()无论为何,整个表达式都会是false,因此g()不会被求值(不会被执行)
f()||g(),如果f()为true,那么g()无论为何,整个表达式都会是true,因此g()不会被求值(不会被执行)


根据这个特性,可以做一些逻辑的简写
比如if(xxx) {yyy} 就可以写成 xxx && yyy
if(!xxx) {yyy} 就可以写成 xxx || yyy

因此callback&&callback.call() 就是 if(callback) callback.call()


这个写法不是很推荐使用在业务代码里。

posted @ 2019-04-10 20:44  suanmei  阅读(335)  评论(0编辑  收藏  举报