3

我最近刚问了关于 jQuery chaning 的以下问题:

是否有格式化 jQuery 链以使其更具可读性的首选方法?

许多人回答说,也许我减少了语句中的链接数量,而是将对象存储在持有变量中,这对我来说很有意义。

但是,我的理解是,链中的对象已经保存在堆栈中(各种),那么结果的缓存/存储在变量中是否不能有效地重新存储它,使用更多的内存?

对其中一篇文章的评论似乎表明可能不会对性能造成太大影响(如果有的话),所以如果它更具可读性,我很乐意按照建议进行缓存。

而且,如果我们使用缓存,这不会开始限制.end()and的用处.andSelf()吗?

4

2 回答 2

8

对象通常存储为引用 - 指向内存中位置的指针。两个持有同一个对象的变量不会复制对象的所有数据——它们只是持有指向实际对象数据所在的内存中相同位置的指针。因此,将对象存储在变量中根本不会对性能造成太大影响。没什么大不了的。

于 2009-08-17T10:04:04.330 回答
5

添加到@Dav 的答案中,有时将 jquery 对象存储在变量中将是一件好事。经典例子:

$('#something div').each( function() {
    $(this).css({'background-color':'#afa'});
    // do some stuff;
    $(this).slideDown('fast');
}

更好的方法:

$('#something div').each( function() {
    var $this = $(this);
    $this.css({'background-color':'#afa'});
    // do some stuff;
    $this.slideDown('fast');
}

这样您就可以避免在调用时创建jquery 对象$

于 2009-08-17T12:51:04.293 回答