Supongamos que tengo esto
let a = { data: 'old' }Digamos hipotéticamente que a tiene una referencia a '123'
Si lo hago
a.data = 'new'¿La referencia de un todavía apunta a '123' o ha sido reasignada?
Gracias
Puedes hacer una prueba muy simple para esto:
let a = { data: "something" }; let b = a; Ahora a y b son referencias al mismo objeto exacto.
a.data = "something else"; console.log(a === b); // true La asignación a la propiedad no afecta el valor de a . También:
console.log(b.data); // "something else"Hipotéticamente, si a apunta a '123', puede asumir que a.data apunta a '456'.
a->123
a.data -> 456
Ahora, cuando cambia a.data a "nuevo" (digamos ahora en 789), cambia el puntero de a.data para que siga apuntando a valor anterior.
a->123
a.data->789
Específico de ReactJS: esta es la razón por la cual cuando se trata de estados de objetos, es posible que React no se vuelva a procesar si cambia una clave de objeto profunda porque la referencia principal no cambia.