Cosa succede in questo codice?Utilizzo di un oggetto come chiave di proprietà in 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!
In particolare, il motivo per cui non utilizzando guardando b
nel c
cambio il valore che è stato memorizzato in una proprietà di a
?
Che cosa significa utilizzare un oggetto come chiave per una proprietà in JavaScript?
Ho provato questo in Chrome/Node e in Firefox.
attualmente javascript non hanno il supporto per oggetto come una chiave probabilmente ottenere coherse (convertito) stringa, che sarà [object Object] e memorizzare il valore da cui si dà la vera ad ogni oggetto come una chiave, ma in futuro 'Mappa 'è qualcosa che puoi usare per memorizzare l'oggetto come chiave. – Sushil
Sembra interessante @Sushil. Hai un riferimento alle informazioni su questa potenziale futura classe Map? Non riuscivo a trovarlo menzionato da nessuna parte dopo alcuni minuti di ricerca. –
la sua una futura implementazione di ECMAScript 6 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Map qui u andare e inoltre c'è un concetto WeakMap molto bello (io personalmente piace) https : //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/WeakMap qui u può leggere su di esso – Sushil