Change Wert der Objekteigenschaft in Javascript-Objekt beeinflussen anderes Objekt

Ich möchte eine Eigenschaft eines Objekts innerhalb eines Objekts ändern. Dabei haben sich auch andere Objekteigenschaften geändert, die mit demselben Prototyp erstellt wurden.

Der Code lautet wie folgt:

var a = {
  x: { y: 'foo' }
}

var b = Object.create(a)
var c = Object.create(a)

console.log(a.x.y) // 'foo'
console.log(b.x.y) // 'foo'
console.log(c.x.y) // 'foo'

b.x.y = 'bar'

var d = Object.create(a)

console.log(a.x.y) // 'bar'
console.log(b.x.y) // 'bar'
console.log(c.x.y) // 'bar'
console.log(d.x.y) // 'bar'

Ich denke, das Problem ist, weil alle Objekte auf das gleiche @ verweisx, daher änderny von jedem Objekt, das in allen Objekten reflektiert wird. Kann jemand erklären, was hier wirklich passiert ist, vielleicht mit Bezug und Vorschlag für eine Problemumgehung?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage