我不明白为什么会这样.
我在这里读到:
第一$.每构成一个单一的函数调用来启动迭代器.
第二个$(foo.vals).each进行三次函数调用以启动迭代器.
- 第一个是$(),它生成一个新的jQuery包装器集(不确定在此过程中有多少其他函数调用).
- 然后调用$().每个.
- 最后它对jQuery.each进行内部调用以启动迭代器.
在你的例子中,差异可以忽略不计.但是,在嵌套使用方案中,您可能会发现性能成为问题.
最后,jQuery Enlightenment中的Cody Lindley不推荐使用$ .each进行大于1000的迭代,因为涉及函数调用.使用法线(var i = 0 ... loop.
所以我用这个jsperf测试了它:
(任务:找到已经检查过内部复选框的Tr,并将该颜色设为tr.)
这是jsbin
但看看jsperf
反对所有人的期望,恰恰相反.(chrome和FF和IE)

使用的人$().each(调用三种方法是最快的等等..
这里发生了什么?