javascript - 请问这段 el && fn.call(el, e, el)代码这么写什么意思?
PHP中文网
PHP中文网 2017-07-05 11:07:11
0
4
1108

el && fn.call(el, e, el)这段代码这么写,我感觉有点懵逼。
如果是想调用fn的话为什么不直接写fn.call(el, e, el)。可是
前面还加&符号,他这是想求布尔值的话又不return。这样求出true or false
又有什么意义?

PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
習慣沉默

利用了 && 的短路性质。

A && B

意思是 如果 A 为假,那么整个表达式就是假,不用给 B 求值。
如果 A 为真,才再对 B 求值来判断

所以上面的代码的意思是

如果 el 为真,那么执行 fn.call(el, e, el);


|| 也有类似的性质:

如果左值为真,后面的就不必求值了。

比如 用来指定默认值

function test(a){
    a = a || '默认值'; 
    
    return a; 
}

test(); 
// => '默认值'
test('wow'); 
// => 'wow' 
代言

如果el存在的话 就调用后面的函数 否则不调用

滿天的星座

雷雷

过去多啦不再A梦

a && b 相当于
if (a){

b

}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板