5

これには名前がありますか?これが私が言おうとしていることの例です:

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

したがって、明らかに両方ともi1jに設定されています。しかし、このプラクティスの名前はありますか?また、優れたコーディング標準の観点から、この種のことは一般的に回避されていますか?また、それが良い習慣である/そうでない理由の例や説明を得ることができますか?

4

3 に答える 3

6

ダニエルが言ったように、それは連鎖割り当てと呼ばれています。一部の値(オブジェクトなど)では、行がからへi = j = _something_の参照を作成するため、通常は回避されます。後で変更すると、も変更されます。ijji

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ます

于 2012-06-26T14:56:11.883 に答える
1

それは「アサインメントチェーン」と呼ばれていると思います。

割り当ては「適切な連想」であると言います。つまり、

i = j = 1;

と同等です

i = (j = 1);

j = 11に番号を割り当ててからj、jの値(現在は1)を返します。

于 2012-06-26T14:51:04.407 に答える
0

「連鎖代入」と呼ばれることもあれば、「複数変数代入」と呼ばれることもあります。また、この質問に対する回答を確認することをお勧めします。

于 2012-06-26T14:57:05.813 に答える