Можно, если обе переменные объявлены при установке значения.Это немного странно, но работает:
var frame,
border = frame = false;
(думаю, это будет самое короткое время, которое вы можете получить)
Это лучше?Я так не думаю, и вы не особо экономите.Более читабельным является
var frame = false,
border = false;
На самом деле есть еще несколько комбинаций, которые вы можете сделать, но вы не можете сделать это без повторения имени переменной или значения.Например, вы также можете сделать:
var frame = false,
border = frame;
Конечно, это работает только для примитивных значений (т. Е. Логических, (литеральных) чисел, (литеральных) строк).Если вы имеете дело с объектами (включая массивы), тогда обе переменные будут ссылаться на один и тот же объект.В этом случае вам действительно нужно инициализировать их отдельно:
var frame = {},
border = {};
// DON'T DO THIS:
var frame,
border = frame = {};
Обновление , потому что я чувствую необходимость объяснить, почему var border = frame = false;
делает не work:
var
не является здесь транзитивным, и это выражение фактически оценивается справа налево.Сначала false
присваивается frame
, который будет найден в цепочке областей действия и в худшем случае станет глобальным.Затем значение frame
присваивается локальной переменной border
.