這是否有一個名稱?這裏是什麼,我想說一個例子:在Javascript中,是否有以下名稱:variable = variable = value;
var i = 0;
var j = 0;
i = j = 1;
所以,很顯然這兩個i
和j
被設置爲1,但有一個名字爲這種做法?另外,就良好的編碼標準而言,通常會避免這種類型的事情?我是否也可以得到一個例子或解釋爲什麼這是/不是很好的做法?
這是否有一個名稱?這裏是什麼,我想說一個例子:在Javascript中,是否有以下名稱:variable = variable = value;
var i = 0;
var j = 0;
i = j = 1;
所以,很顯然這兩個i
和j
被設置爲1,但有一個名字爲這種做法?另外,就良好的編碼標準而言,通常會避免這種類型的事情?我是否也可以得到一個例子或解釋爲什麼這是/不是很好的做法?
正如丹尼爾所說,它被稱爲鏈式分配。通常可以避免這種情況,因爲對於某些值(例如對象),行i = j = _something_
會創建從i
到j
的引用。如果您以後更改j
,那麼i
也會更改。
var i = {};
var j = {};
i = j = {a:2};
j.a = 3; //Now, j.a === 3 AND i.a === 3
一個例子來看看這個的jsfiddle演示:http://jsfiddle.net/jackwanders/a2XJw/1/
如果你不知道什麼i
和j
將是,你可能會遇到
+1:這是一個非常重要的考慮因素。 –
謝謝,這正是我正在尋找的。我可以發誓,我曾嘗試過這一次,它扭曲了我想要做的事情,這就解釋了它。再次感謝你! – BenR
我相信它被稱爲「分配鏈」。
我們說賦值是「正確的聯想」。這意味着,
i = j = 1;
相當於
i = (j = 1);
j = 1
將數1
分配給j
然後返回j的值(這是現在1
)。
有時它被稱爲問題「鏈式分配「,有時稱爲」多變量分配「。此外,你可能想看看this問題的答案。
相關:http://stackoverflow.com/questions/3387247/in-javascript-is-chained-assignment-okay –