13

这些在速度方面是否相等?

$(this).attr("date",date);
$(this).attr("date_start",date_start);
$(this).attr("heure_start",heure_start);

或者

$(this).attr("date",date).attr("date_start",date_start).attr("heure_start",heure_start);

即使第二个更快,是否最好单独编写以使代码更具可读性?

4

2 回答 2

29

不,两者在速度上不相等。

$(this)每次构建一个新的 jQuery 对象。取决于是什么this,这可能是一个复杂的操作。

所以第二种形式更快。

请注意,为了便于阅读,您可以将其写为

$(this)
    .attr("date",date)
    .attr("date_start",date_start)
    .attr("heure_start",heure_start);

如果由于中间有其他代码行而无法链接操作,则还可以缓存该对象。这是通常的:

var $this = $(this);
$this.attr("date", date);
$this.attr("date_start", date_start);
$this.attr("heure_start", heure_start);

还要注意attr可以将地图作为参数:

$(this).attr({
    date: date,
    date_start: date_start,
    heure_start: heure_start
});
于 2012-12-13T14:23:09.877 回答
5

出于可读性目的,您可以将行拆分为

$(this)
    .attr("date",date)
    .attr("date_start",date_start)
    .attr("heure_start",heure_start);

我知道这应该是一个评论,但间距作为一个没有意义。

于 2012-12-13T14:24:25.250 回答