javascript - 請問這段 el && fn.call(el, e, el)程式碼這麼寫什麼意思?
PHP中文网
PHP中文网 2017-07-05 11:07:11
0
4
1110

#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

}

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板