Heim > Fragen und Antworten > Hauptteil
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?
習慣沉默2017-07-05 11:09:11
利用了 &&
的短路性质。
在 A && B
中
意思是 如果 A
为假,那么整个表达式就是假,不用给 B
求值。
如果 A
为真,才再对 B
求值来判断
所以上面的代码的意思是
如果 el
为真,那么执行 fn.call(el, e, el);
||
也有类似的性质:
如果左值为真,后面的就不必求值了。
比如 用来指定默认值
function test(a){
a = a || '默认值';
return a;
}
test();
// => '默认值'
test('wow');
// => 'wow'