Pregunta jQuery $ .each (arr, foo) versus $ (arr) .each (foo)


En jQuery, ¿cuál es la diferencia entre las siguientes dos construcciones de jQuery.each:

// Given
var arr = [1,2,3,4],
    results = [],
    foo = function (index, element) { 
       /* something done to/with each element */
       results.push(element * element); // arbitrary thing.
    }

// construction #1
$.each(arr, foo); // results = [1,4,9,16]

// construction #2
$(arr).each(foo); // results = [1,4,9,16]

¿Hay alguna diferencia, o es puramente sintaxis?


5
2018-06-08 12:41


origen


Respuestas:


los $().each() es solo una envoltura para $.each(), puedes ver esto en el código central:

each: function( callback, args ) {
    return jQuery.each( this, callback, args );
}

Aunque, $(something).each() está destinado a elementos, no puedo prometer que usarlo con una matriz simple no se romperá más tarde (es poco probable que se rompa, ya que los objetos jQuery están envueltos en matrices). El uso previsto es directamente llamando $.each() en este caso.


8
2018-06-08 12:43



No hay diferencia con la forma en que se maneja la matriz, sino simplemente con la sintaxis.

jQuery es una biblioteca muy flexible y le permite aprovechar cada función de forma diferente para adaptarse a usted.

jQuery se encarga de esto así

function each(first,second)
{
    array = (instanceOf this == Array) ? this : ((first instanceOf Array) ? first : second);
    callback = (instanceOf second == Function) ? second : first;
    //As  you can see its testing what types are being sent to the fintion
}

Si el first argumento es una función entonces this Debe ser el arreglo I.E $([1,2,3,4]).each(callback) de lo contrario, se espera que first es la matriz y second es la devolución de llamada IE `$ .each (array, callback);

pero de cualquier manera, el proceso es prácticamente el mismo 'solo que la verificación del tipo de argumento ayuda a un usuario a perder sobre cómo manejar la situación.

Aunque esta no sea la forma en que se maneja cada una, hay algunas funciones que utilizan esta técnica para crear la holgura


1
2018-06-08 12:48