微商城项目 请求接口封装中出现 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()
这个写法不是很推荐使用在业务代码里。