Я хочу понять, как объекты работают в JS.
const obj = { inner: { a: 'Hello' } };
const clone = { ...obj };
// obj === clone -> false
// !!! BUT !!!
// obj.inner === clone.inner -> true
clone.inner = { a: 'world' };
// obj === { inner: { a: 'Hello' } }
// clone === { inner: { a: 'World' } }
Есть ли документация по этому поведению? Могу ли я рассчитывать на равенство ссылок на внутренние объекты при создании нового объекта с помощью оператора распространения?