Die erwarteten Ergebnisse unterscheiden sich stark von den tatsächlichen Ergebnissen, als ich dieses Problem im Internet versehentlich entdeckt habe.
var a = {n: 1} var b = a; ax = a = {n: 2} console.log (ax); console.log (bx); undefinedObject {n: 2}Wenn ich auseinander nehme, wird das Ergebnis das sein, was ich dachte
var a = {n: 1} var b = a; a = {n: 2}; ax = {n: 2} console.log (ax); // Objekt {n: 2} console.log (bx); // undefiniertanalysieren:
ax = a = {n: 2}
Die Zuordnungsoperation von JS wird mit dem rechten kombiniert, was ax = (a = {n: 2}) entspricht.
Die Bewertungsoperation von JS ist von links nach rechts (PS: Mit einem Kollegen besprochen, sagte er, es sei von links nach rechts, und ich dachte, es sei von rechts nach links, aber am Ende stellte ich fest, dass ich mich geirrt habe)
1) AX = (Endergebnis in Klammern)
Nachdem festgestellt wurde, dass das X -Attribut von A nicht existiert, fügen Sie dem Objekt durch a ein Attribut X hinzu. Dieses X -Attribut muss ihm ein Ergebnis zuweisen. Ok, ich werde auf das Ergebnis warten.
2) Da Sie das Ergebnis in Klammern erzielen möchten, wartet AX immer darauf, dass das Ergebnis in Klammern zurückgibt.
3) Kehren Sie in Klammern zu A = {n: 2} zurück, wobei die zeigende Änderung aufgetreten ist
Die einfache Implementierung der obigen kontinuierlichen JS -Zuordnung ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.