Chcesz polegać na przecinkach, ponieważ jeśli polegasz na konstrukcji wielokrotnego przypisania, strzelisz sobie w stopę w takim czy innym miejscu.
Przykładem może być:
>>> var a = b = c = [];
>>> c.push(1)
[1]
>>> a
[1]
Wszystkie odnoszą się do tego samego obiektu w pamięci, nie są „unikalne”, ponieważ za każdym razem, gdy tworzysz odniesienie do obiektu (tablica, literał obiektu, funkcja), jest ono przekazywane przez odniesienie, a nie wartość. Więc jeśli zmienisz tylko jedną z tych zmiennych i chcesz, aby działały indywidualnie, nie otrzymasz tego, czego chcesz, ponieważ nie są to pojedyncze obiekty.
Przypisywanie wielokrotne ma również wadę polegającą na tym, że zmienne drugorzędne stają się zmiennymi globalnymi i nie chcesz przeciekać do globalnej przestrzeni nazw.
(function() { var a = global = 5 })();
alert(window.global) // 5
Najlepiej jest po prostu używać przecinków i najlepiej z dużą ilością spacji, aby było czytelne:
var a = 5
, b = 2
, c = 3
, d = {}
, e = [];
var $cls = my.namespace.Foo = function(args){ ... }