Vous devez vous appuyer sur les virgules, car si vous vous appuyez sur la construction des affectations multiples, vous vous tirerez une balle dans le pied à un moment ou à un autre.
Un exemple serait :
>>> var a = b = c = [];
>>> c.push(1)
[1]
>>> a
[1]
Ils font tous référence au même objet en mémoire, ils ne sont pas "uniques" puisque chaque fois que vous faites une référence à un objet (tableau, littéral d'objet, fonction), elle est passée par référence et non par valeur. Donc, si vous modifiez une seule de ces variables et que vous voulez qu'elles agissent individuellement, vous n'obtiendrez pas ce que vous voulez car elles ne sont pas des objets individuels.
Il y a également un inconvénient à l'affectation multiple, dans la mesure où les variables secondaires deviennent des variables globales, et vous ne voulez pas avoir de fuite dans l'espace de noms global.
(function() { var a = global = 5 })();
alert(window.global) // 5
Il est préférable d'utiliser des virgules et, de préférence, de laisser beaucoup d'espaces pour que le texte soit lisible :
var a = 5
, b = 2
, c = 3
, d = {}
, e = [];
1 votes
En savoir plus sur l'affectation multiple : Comment fonctionne l'affectation des variables en JavaScript ? . Je trouve ce modèle utile à l'intérieur d'une fermeture pour exposer les fonctions du constructeur :
var $cls = my.namespace.Foo = function(args){ ... }