Cambiar el valor de la propiedad del objeto dentro del objeto javascript afecta a otro objeto
Me gustaría cambiar una propiedad de un objeto, dentro de un objeto. Pero, cuando hice eso, otra propiedad de objeto que se creó usando el mismo prototipo también cambió.
El código es el siguiente:
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'
Creo que el problema es porque todos los objetos se refieren a lo mismox
, por lo tanto cambiandoy
de cualquier objeto reflejado en todos los objetos. ¿Alguien puede explicar lo que realmente sucedió aquí, tal vez con referencia y sugerencia para una solución alternativa?