Non, les deux ne sont pas équivalents en vitesse.
$(this)
génère un nouvel objet jQuery à chaque fois. Et en fonction de ce qui est this
, cela peut être une opération complexe.
La seconde forme est donc plus rapide.
Notez que pour readibility vous pouvez l'écrire comme
$(this)
.attr("date",date)
.attr("date_start",date_start)
.attr("heure_start",heure_start);
Si vous ne pouvez pas enchaîner les opérations parce que vous avez d'autres lignes de code entre les deux, vous pouvez également mettre en cache l'objet. Ceci est d'habitude:
var $this = $(this);
$this.attr("date", date);
$this.attr("date_start", date_start);
$this.attr("heure_start", heure_start);
Et notez aussi que attr peut prendre une carte comme argument:
$(this).attr({
date: date,
date_start: date_start,
heure_start: heure_start
});
Et aussi plus facile à lire lorsque formaté correctement IMO –
C'est une explication complète! –