Почему delete clone.nestA.nestB
влияет на source
, а delete clone.nestA
нет?
source
и clone
являются различными объектами. На третий объект ссылаются как из свойства source.nestA
, так и из свойства clone.nestA
. (Другой объект находится в свойстве nestB
).
Когда вы удаляете свойство в source
, например, свойство source.nestA
, вы воздействуете только на объект source
.
Когда вы удаляете свойство в третьем объекте, например source.nestA.nestB
или clone.nestA.nestB
(то же самое свойство в том же объекте), вы воздействуете только на этот третий объект. Просто source
и clone
теперь ссылаются на тот объект, у которого отсутствует свойство.