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);
},