これには名前がありますか?これが私が言おうとしていることの例です:
var i = 0;
var j = 0;
i = j = 1;
したがって、明らかに両方ともi
1j
に設定されています。しかし、このプラクティスの名前はありますか?また、優れたコーディング標準の観点から、この種のことは一般的に回避されていますか?また、それが良い習慣である/そうでない理由の例や説明を得ることができますか?
これには名前がありますか?これが私が言おうとしていることの例です:
var i = 0;
var j = 0;
i = j = 1;
したがって、明らかに両方ともi
1j
に設定されています。しかし、このプラクティスの名前はありますか?また、優れたコーディング標準の観点から、この種のことは一般的に回避されていますか?また、それが良い習慣である/そうでない理由の例や説明を得ることができますか?
ダニエルが言ったように、それは連鎖割り当てと呼ばれています。一部の値(オブジェクトなど)では、行がからへ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
ます
それは「アサインメントチェーン」と呼ばれていると思います。
割り当ては「適切な連想」であると言います。つまり、
i = j = 1;
と同等です
i = (j = 1);
j = 1
1
に番号を割り当ててからj
、jの値(現在は1
)を返します。
「連鎖代入」と呼ばれることもあれば、「複数変数代入」と呼ばれることもあります。また、この質問に対する回答を確認することをお勧めします。