Nel codice sotto, andiamo a creare new Rabbit
, e successivamente proviamo a modificare il suo .
Inizialmente, abbiamo questo codice:
function Rabbit() {}
Rabbit. = {
eats: true
};
let rabbit = new Rabbit();
alert( rabbit.eats ); // true
Aggiungiamo una o più stringhe. Cosa mostrerà
alert
ora?function Rabbit() {} Rabbit. = { eats: true }; let rabbit = new Rabbit(); Rabbit. = {}; alert( rabbit.eats ); // ?
…E se il codice è come il seguente (abbiamo rimpiazzato una sola riga)?
function Rabbit() {} Rabbit. = { eats: true }; let rabbit = new Rabbit(); Rabbit..eats = false; alert( rabbit.eats ); // ?
E in questo caso (abbiamo rimpiazzato solo una riga)?
function Rabbit() {} Rabbit. = { eats: true }; let rabbit = new Rabbit(); delete rabbit.eats; alert( rabbit.eats ); // ?
L’ultima variante:
function Rabbit() {} Rabbit. = { eats: true }; let rabbit = new Rabbit(); delete Rabbit..eats; alert( rabbit.eats ); // ?
Riposte:
true
.L’assegnazione a
Rabbit.
imposta[[]]
per i nuovi oggetti, ma non influenza gli oggetti già esistenti.false
.Gli oggetti vengono assegnati per riferimento. L’oggetto in
Rabbit.
non viene duplicato, è sempre un oggetto riferito sia daRabbit.
che da[[]]
dirabbit
.Quindi quando cambiamo il suo contenuto tramite un riferimento, questo sarà visibile anche attraverso l’altro.
true
.Tutte le operazion di
delete
vengono applicate direttamente all’oggetto. Quidelete rabbit.eats
prova a rimuovere la proprietàeats
darabbit
, ma non esiste. Quindi l’operazione non avrà alcun effetto.undefined
.La proprietà
eats
viene rimossa da , non esiste più.