Объект, скопированный во второе свойство по ссылке, сохраняется даже после удаления исходного свойства?
Я думал, что объекты передаются в качестве ссылки. Но когда я удаляю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?
редактировать: спасибо всем за ответы! так что это не ошибка, и это поведение на самом деле очень хорошее, оно позволяет людям изменять имена «ключ» / «свойство» при сохранении объекта! :)