gpt4 book ai didi

jquery - $.each([集合]) 与 $([集合]).each()

转载 作者:行者123 更新时间:2023-12-03 22:21:26 28 4
gpt4 key购买 nike

这两种方法似乎 produce the same results ,但我一直很难真正说服人们第二种方法有效,因为它显然并不为人所知。

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

经检查来源,这两者似乎是一回事。第二种方法如下:

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

该方法显然调用了更常见的方法,这意味着它同样合法。这种理解是否正确,还是我在这里遗漏了一些东西?

我通常信任这种方法,因为它不会导致我偏离选择器的标准实践。让我们面对现实吧,我们受过训练可以做到:

$("p").each();

所以这样做似乎很自然:

$(obj).each();

我错了吗?

最佳答案

两者之间的差异实际上是指数级的,具体取决于您如何使用它。

第一个 $.each 构成一个单个函数调用来启动迭代器。

第二个 $(foo.vals).each 调用三个函数来启动迭代器。第一个是 $() ,它生成一个新的 jQuery 包装器集(不确定在此过程中进行了多少次其他函数调用)。然后调用$().each。最后,它对 jQuery.each 进行内部调用以启动迭代器。

在您的示例中,至少可以说差异可以忽略不计。但是,在嵌套使用场景中,您可能会发现性能成为一个问题。

最后,jQuery Enlightenment 中的 Cody Lindley 不建议使用 $.each 进行大于 1000 次的迭代,因为涉及到函数调用。使用普通的 for( var i = 0... 循环。

关于jquery - $.each([集合]) 与 $([集合]).each(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2321520/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com