В чём разница между использованием конструкторов и литералов для создания объектов?
СобеседованиеПрототипы и классыОбъекты
- Литералы — более краткий и предпочтительный способ создания объектов
- Конструкторы:
- Более многословны:
new Object() vs {}
- Могут иметь неожиданное поведение:
new Object(1) создаёт объект-обёртку, а не число
- Медленнее в некоторых случаях
- Литералы:
- Более читабельны:
[] vs new Array()
- Более предсказуемы:
[1, 2, 3] всегда создаёт массив с этими элементами
- Рекомендуются в современном JavaScript
- Исключения:
Date и RegExp обычно создаются через конструкторы