Объект, скопированный во второе свойство по ссылке, сохраняется даже после удаления исходного свойства?

Я думал, что объекты передаются в качестве ссылки. Но когда я удаляюbэто все еще существует вc, Пожалуйста, посмотрите этот пример:

Эта первая часть имеет смысл для меня, так как она передана по ссылке:

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

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

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

Теперь эта часть не имеет смысла для меня

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

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

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

такb свойство удалено, ноc Свойство содержит свойства, на которые ссылается перед удалением. это ошибка в JavaScript?

редактировать: спасибо всем за ответы! так что это не ошибка, и это поведение на самом деле очень хорошее, оно позволяет людям изменять имена «ключ» / «свойство» при сохранении объекта! :)

Ответы на вопрос(6)

Ваш ответ на вопрос