1 回答

TA貢獻1847條經驗 獲得超7個贊
有多種方法可以做到這一點。
重復該值:
var a = 1, b = 1, c = 1;
console.log(a, b, c) //1 1 1
相互分配變量(提示:將名稱最短的變量放在第一位,然后重復該變量):
var a = 1, b = a, c = a;
console.log(a, b, c) //1 1 1
使用你的方法:
var a, b, c;
a = b = c = 1
console.log(a, b, c) //1 1 1
解構一個無限迭代器(這在變量數量非常大的情況下似乎很有用):
var [a, b, c] = (function*(v){while(true) yield v})(1);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// ^--- Value
console.log(a, b, c) //1 1 1
然而,當涉及到對象文字、函數的返回值和類似的東西時,它們的行為有所不同(這取決于您應該選擇的用例)。
解決方案 1. 將為每個變量創建不同的值
解決方案 2.、3. 和 4. 將為所有變量分配相同的值
解決方案 4. 可以修改為分配不同的值:
var [a, b, c] = (function*(){while(true) yield [1,2,3] })();
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // ^^^^^^^--- Value
console.log(a, b, c) //[1,2,3] [1,2,3] [1,2,3]
添加回答
舉報