Когда нужно делать новый экземпляр

«Когда нужно делать новый экземпляр» — вопрос из категории Паттерны, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Новый экземпляр объекта нужно создавать, когда требуется независимая копия с собственным состоянием. Это важно для:

  1. Избежания мутаций общего состояния
const obj1 = { value: 1 };
const obj2 = obj1; // ссылка
obj2.value = 2; // мутирует obj1

const obj3 = { ...obj1 }; // новый экземпляр
obj3.value = 3; // не влияет на obj1
  1. Когда нужны уникальные экземпляры классов
class User {
  constructor(name) { this.name = name; }
}
const user1 = new User('Alice');
const user2 = new User('Bob'); // отдельный экземпляр
  1. Для иммутабельных обновлений в React/Redux
// Плохо - мутация
state.user.name = 'New'; 

// Хорошо - новый экземпляр
return { ...state, user: { ...state.user, name: 'New' } };

Также новые экземпляры нужны для примитивов-оберток (String, Number) или когда требуется переопределить методы прототипа.