JS Quiz: Vero o Falso? Identità segreta

Dopo aver scoperto cosa sono i primitivi, preparatevi per un nuovo JS Quiz!



<script> var a = {}; var b = {}; alert(a==b) //-> false var c = a; alert(a==c) //-> true </script> Questa situazione è davvero strana, non trovate? Come mai due oggetti vuoti vengono considerati diversi?

Un motivo logico c'è: in JavaScript due oggetti nuovi sono sempre diversi, al fine di poterli estendere indipendentemente! In pratica, ad ogni oggetto viene atttribuita un'identità, che purtroppo non può essere ottenuta tramtie alcuna proprietà o metodo. Nel caso a==c invece "c" è soltanto un riferimento all'oggetto a, perciò in realtà non vengono confrontate due istanze, bensì una sola istanza con se stessa.

Commenti