jQuery中$(array).each(...)和$ .each(array,...)之间的区别

问题描述:

如果我想要遍历的JavaScript变量中有一个数组,我通常使用jQuery的.each()功能如下:

var myArray = ["foo", "bar"]; 
$(myArray).each(function(index, value) { 
    console.log(value); 
}); 

但我可以在我的数组作为参数传递给.each()功能,这样达到同样的效果:

var myArray = ["foo", "bar"]; 
$.each(myArray, function(index, value) { 
    console.log(value); 
}); 

Obligatory but unnecessary JSFiddle

这个问题基本上可以应用于其他任何jQuery函数,而不仅仅是.each()。这两种不同用法之间是否有功能差异?

不,它们的功能没有区别。

主要区别在于使用$.each()允许您传入数组,而使用$().each()要求您将构造的jQuery对象用作上下文。

可读性略有不同,但可以忽略不计。

如果你看jQuery's source code,你也可以证实这一点,因为$.each是单纯只是给每个原型的定义的电话:

// Execute a callback for every element in the matched set. 
each: function(callback) { 
    return jQuery.each(this, callback); 
},