Esta pregunta parece un poco tonta, pero solo quiero confirmar mi comprensión.
Estoy aprendiendo sobre la comparación en JavaScript y me parece que si dos objetos tienen la misma dirección, definitivamente deberían ser iguales (¿b/c básicamente son uno?). ¿Es esto siempre cierto?
pregunta adicional: en el caso de que quiera implementar esta comparación de direcciones (comparación superficial), ¿puedo hacerlo en JS puro sin Object.is o === ?
Dos objetos no pueden ocupar la misma ubicación, ya sea en nuestro universo físico o en el universo retorcido de javascript. Lo que puede tener son dos objetos cuyos valores son referencias a la misma ubicación de memoria.
var x = [1, 2, 3] var y = x Entonces, la matriz [1, 2, 3] podría almacenarse en alguna dirección de memoria, digamos que comienza en 00A4. La variable x se almacenará en algún lugar diferente de la memoria, digamos 0108, y el valor real almacenado en esa ubicación es el número 00A4, que representa la ubicación de memoria de su valor de referencia. Ahora, y se almacenará en otra ubicación de memoria totalmente diferente, digamos 020F, y su valor también será 00A4, la ubicación de memoria de su valor de referencia.
Tanto x como y son variables cuyos valores son referencias, que finalmente apuntan a la misma dirección. Los valores de referencia que apuntan a la misma dirección siempre son iguales cuando se comparan.
Javascript no tiene ninguna semántica de bajo nivel como esta para manipular direcciones de memoria. Podrías hacer eso tal vez usando llamadas de procedimiento c o algo así.