予想される結果は、インターネット上でこの問題を誤って発見したときの実際の結果とは大きく異なります。
var a = {n:1} var b = a; ax = a = {n:2} console.log(ax); console.log(bx);未定義のオブジェクト{n:2}私がバラバラになった場合、結果は私が思ったものになります
var a = {n:1} var b = a; a = {n:2}; ax = {n:2} console.log(ax); // object {n:2} console.log(bx); // undefined分析:
ax = a = {n:2}
JSの割り当て操作は右と組み合わされます。これはax =(a = {n:2})に相当します
JSの評価操作は左から右にあります(PS:同僚と話し合って、彼は左から右へだと言いました、そして、私はそれが右から左にあると思いましたが、最終的に私は間違っていることがわかりました)
1)ax =(ブラケットの最終結果)
Aのx属性が存在しないことがわかった後、aによって指されたオブジェクトに属性xを追加します。このX属性は、結果を割り当てる必要があります。 OK、結果を待ちます。
2)結果をブラケットで取得したいので、AXは括弧内の結果を返す結果を待ち続けているので、a = {n:2}の評価を開始してから、この新しい属性xに返します
3)括弧内のa = {n:2}に戻ると、ポインティングの変更が発生しました
上記の継続的なJS割り当ての簡単な実装は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。