Sam*_*son 9 iteration jquery json
这两种方法似乎都产生了相同的结果,但我很难真正说服人们第二种方法有效,因为它显然并不常见.
// Create some data
var foo = { 'vals':[ {'id':'foo'}, {'id':'bar'} ] }?????????????????;
// Common Method
$.each(foo.vals, function(i,o){
alert(this.id);
});
// Alternative (lesser-known?) Method
$(foo.vals).each(function(i,o){
alert(this.id);
});
Run Code Online (Sandbox Code Playgroud)
检查来源后,这两个看起来是同一个.第二种方法如下:
each: function( callback, args ) {
return jQuery.each( this, callback, args );
}
Run Code Online (Sandbox Code Playgroud)
这种方法明显地称为更常见的方法,这意味着它同样合法.这种理解是正确的,还是我在这里遗漏了什么?
我通常信任这种方法,因为它不会导致我偏离选择器的标准做法.让我们面对现实吧,我们接受过以下培训:
$("p").each();
Run Code Online (Sandbox Code Playgroud)
所以看起来很自然:
$(obj).each();
Run Code Online (Sandbox Code Playgroud)
我错了吗?
Dou*_*ner 12
两者之间的差异实际上是指数级的,具体取决于您使用它的方式.
第一$.each构成了一个函数调用来启动迭代器.
第二个$(foo.vals).each进行三次函数调用以启动迭代器.第一个是$()生成一个新的jQuery包装器集(不确定在此过程中有多少其他函数调用).然后打电话给$().each.最后它使内部调用jQuery.each启动迭代器.
在你的例子中,差异可以忽略不计.但是,在嵌套使用方案中,您可能会发现性能成为问题.
最后,jQuery Enlightenment中的Cody Lindley建议不要使用$.each大于1000的迭代,因为涉及函数调用.使用正常for( var i = 0...循环.
| 归档时间: |
|
| 查看次数: |
2404 次 |
| 最近记录: |