¿Qué está pasando en este código?Usar un objeto como clave de propiedad en JavaScript
var a = {a:1};
var b = {b:2};
var c = {};
c[a] = 1;
c[b] === 1 // true!
c[b] = 2;
c[a] === 2 // true!
Específicamente, ¿por qué no usar mirando hacia arriba en b
c
retorno el valor que se almacena en una propiedad de a
?
¿Qué significa utilizar un objeto como clave de una propiedad en JavaScript?
He probado esto en Chrome/Node y en Firefox.
actualmente javascript no tiene soporte para object como clave, probablemente obtenga coherse (convertido a) string que será [object Object] y almacenará el valor, por lo que da verdadero a cada objeto como clave, pero en el futuro 'Map 'es algo que puedes usar para almacenar objetos como una clave. – Sushil
Suena interesante @Sushil. ¿Tiene alguna referencia a la información sobre esta futura clase de Map? No pude encontrarlo mencionado en ningún lado después de unos minutos de búsqueda. –
es una implementación futura para ECMAScript 6 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Map aquí va y, además, hay un concepto WeakMap muy agradable (me gusta personalmente) https : //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/WeakMap aquí puede leer al respecto – Sushil