el && fn.call(el, e, el) Dieser Code ist so geschrieben, ich bin etwas verwirrt.
Wenn Sie fn anrufen möchten, schreiben Sie doch direkt fn.call(el, e, el). Vor
steht jedoch ein &-Symbol. Er möchte einen booleschen Wert finden, ohne ihn zurückzugeben. Welchen Sinn hat es, auf diese Weise wahr oder falsch zu finden?
利用了
&&
的短路性质。在
A && B
中意思是 如果
A
为假,那么整个表达式就是假,不用给B
求值。如果
A
为真,才再对B
求值来判断所以上面的代码的意思是
如果
el
为真,那么执行fn.call(el, e, el);
||
也有类似的性质:如果左值为真,后面的就不必求值了。
比如 用来指定默认值
如果el存在的话 就调用后面的函数 否则不调用
a && b 相当于
if (a){
}