Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Was bedeutet dieser el && fn.call(el, e, el)-Code?

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?

PHP中文网PHP中文网2663 Tage vor1065

Antworte allen(4)Ich werde antworten

  • 習慣沉默

    習慣沉默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' 

    Antwort
    0
  • 代言

    代言2017-07-05 11:09:11

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

    Antwort
    0
  • 滿天的星座

    滿天的星座2017-07-05 11:09:11

    // 如果el为空会报错,所以加个判断
    if(el){
      fn.call(el, e, el)
    }

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-05 11:09:11

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

    b

    }

    Antwort
    0
  • StornierenAntwort