2012-06-26 82 views
3

這是否有一個名稱?這裏是什麼,我想說一個例子:在Javascript中,是否有以下名稱:variable = variable = value;

var i = 0; 
var j = 0; 
i = j = 1; 

所以,很顯然這兩個ij被設置爲1,但有一個名字爲這種做法?另外,就良好的編碼標準而言,通常會避免這種類型的事情?我是否也可以得到一個例子或解釋爲什麼這是/不是很好的做法?

+0

相關:http://stackoverflow.com/questions/3387247/in-javascript-is-chained-assignment-okay –

回答

4

正如丹尼爾所說,它被稱爲鏈式分配。通常可以避免這種情況,因爲對於某些值(例如對象),行i = j = _something_會創建從ij的引用。如果您以後更改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/

如果你不知道什麼ij將是,你可能會遇到

+0

+1:這是一個非常重要的考慮因素。 –

+0

謝謝,這正是我正在尋找的。我可以發誓,我曾嘗試過這一次,它扭曲了我想要做的事情,這就解釋了它。再次感謝你! – BenR

1

我相信它被稱爲「分配鏈」。

我們說賦值是「正確的聯想」。這意味着,

i = j = 1; 

相當於

i = (j = 1); 

j = 1將數1分配給j然後返回j的值(這是現在1)。

0

有時它被稱爲問題「鏈式分配「,有時稱爲」多變量分配「。此外,你可能想看看this問題的答案。

相關問題