Ответ
Новый экземпляр объекта нужно создавать, когда требуется независимая копия с собственным состоянием. Это важно для:
- Избежания мутаций общего состояния
const obj1 = { value: 1 };
const obj2 = obj1; // ссылка
obj2.value = 2; // мутирует obj1
const obj3 = { ...obj1 }; // новый экземпляр
obj3.value = 3; // не влияет на obj1
- Когда нужны уникальные экземпляры классов
class User {
constructor(name) { this.name = name; }
}
const user1 = new User('Alice');
const user2 = new User('Bob'); // отдельный экземпляр
- Для иммутабельных обновлений в React/Redux
// Плохо - мутация
state.user.name = 'New';
// Хорошо - новый экземпляр
return { ...state, user: { ...state.user, name: 'New' } };
Также новые экземпляры нужны для примитивов-оберток (String, Number) или когда требуется переопределить методы прототипа.