¿El objeto copiado a la segunda propiedad mediante referencia persiste incluso después de eliminar la propiedad original?

Pensé que los objetos se pasan como referencia. Pero cuando borrob, todavía existe enc. Por favor vea este ejemplo:

Esta primera parte tiene sentido para mí, ya que se pasa por referencia:

var a = {b: {val:true}};

a.c = a.b;
a.b.val = 'rawr';

console.log(uneval(a)); // outputs: "({b:{val:"rawr"}, c:{val:"rawr"}})"

Ahora esta parte no tiene sentido para mí:

var a = {b: {val:true}};

a.c = a.b;
a.b.val = 'rawr';
delete a.b;

console.log(uneval(a)); // outputs: "({c:{val:"rawr"}})"

entoncesb la propiedad se elimina, peroc La propiedad contiene las propiedades a las que se hace referencia antes de eliminar. ¿Es esto un error en JavaScript?

editar: gracias a todas las respuestas! así que no es un error, y este comportamiento es realmente muy bueno, ¡permite a las personas cambiar los nombres de "clave" / "propiedad" mientras retienen el objeto! :)

Respuestas a la pregunta(6)

Su respuesta a la pregunta