代码之家  ›  专栏  ›  技术社区  ›  Mert Nuhoglu

jQuery的每个方法中“callback.call(value,i,value)”的含义是什么?

  •  26
  • Mert Nuhoglu  · 技术社区  · 14 年前

    each()

    callback.call( value, i, value ) 
    

    我不明白这句话到底是什么意思。

    我知道什么 callback call 意思是,但我无法获取函数调用的参数: (value,i,value) . 这是什么意思?

    每个()

    从jQuery源:

    for ( var value = object[0];
          i < length &&
          callback.call( value, i, value ) // <=== LOOK!
          !== false;
          value = object[++i] ) {}
    
    3 回复  |  直到 14 年前
        1
  •  48
  •   lonesomeday    14 年前

    这个 call 方法存在于JavaScript中的所有函数上。它允许您调用函数,并在这样做时设置 this 在这个功能范围内。

    function myFunc() {
        console.log(this);
    }
    
    myFunc.call(document.body);
    

    在内部 myFunc document.body .

    的第一个参数 呼叫 是要设置为

    callback.call( value, i, value )
    

    这相当于

    callback(i, value)
    

    但在回拨中, 现在也设置为 value .

        2
  •  1
  •   Pointy    14 年前

    这个 .each() this )作为第二个参数。

    因此,在其中一个功能中:

    $('.foo').each(function(i, elem) {
      var $this = $(this), $elem = $(elem);
    

    $this $elem 是可以互换的。

    第一个论点 .call() .call() 只是作为简单的参数传递给函数。

        3
  •  1
  •   SLaks    14 年前

    callback 方法 this 设置为 value call )还有争论 i 价值 . (其他参数 呼叫 )