Bạn muốn dựa vào dấu phẩy vì nếu bạn dựa vào cấu trúc nhiều phép gán, bạn sẽ tự bắn vào chân mình ở điểm này hay điểm khác.
Một ví dụ sẽ là:
>>> var a = b = c = [];
>>> c.push(1)
[1]
>>> a
[1]
Tất cả chúng đều tham chiếu đến cùng một đối tượng trong bộ nhớ, chúng không phải là "duy nhất" vì bất cứ lúc nào bạn thực hiện tham chiếu đến một đối tượng (mảng, đối tượng theo nghĩa đen, hàm) nó được truyền bằng tham chiếu chứ không phải giá trị. Vì vậy, nếu bạn chỉ thay đổi một trong những biến đó và muốn chúng hoạt động riêng lẻ, bạn sẽ không đạt được những gì bạn muốn vì chúng không phải là các đối tượng riêng lẻ.
Ngoài ra còn có một nhược điểm trong việc gán nhiều lần, đó là các biến phụ trở thành hình cầu và bạn không muốn rò rỉ vào không gian tên chung.
(function() { var a = global = 5 })();
alert(window.global) // 5
Tốt nhất chỉ nên sử dụng dấu phẩy và tốt nhất là có nhiều khoảng trắng để nó có thể đọc được:
var a = 5
, b = 2
, c = 3
, d = {}
, e = [];
var $cls = my.namespace.Foo = function(args){ ... }