Использование конструктора для создания тривиального объекта с только свойствами значения является контрпродуктивным. Простое создание простого объектного литерала с нуля каждый раз быстрее. Вы всегда можете определить функцию, если ее нужно вызывать из большого количества разных мест.Эй, вы только что создали базовую конструкторскую функцию: lol:
Если ваш объект становится нетривиальным, например, включая геттеры, сеттеры или полномасштабные методы, то конструктор (с javascript в прототипе, который будет использоваться совместно) на порядок быстрее, чем создание объекта с нуля. Конечно, вы говорите о нескольких микросекундах (на обычном рабочем столе) для создания объекта с небольшим количеством встроенного javascript против менее чем микросекунды для вызова конструктора, поэтому в большинстве случаев это не важно. Создание объекта с только свойствами значения на другой порядок быстрее.
Помните также, что первоначальное создание конструктора - дорогостоящая операция, которая может быть более важной, если ее нужно использовать только несколько раз. В некоторых случаях конструктор может быть предварительно скомпилирован, например, если он определен в модуле кода javascript в аддоне Firefox, а затем он является беспроигрышным.
Существуют также более формальные методы для создания объектов, таких как функция Object.create(). Однако это сложно и громоздко использовать и, по-видимому, не оптимизировано в любом текущем браузере. Во всех тестах, которые я запускал, он отчаянно медленный по сравнению с другими методами, но может быть полезен, когда вам нужны расширенные возможности и вы не будете называть его сотни раз.
Вы можете проверить его на jsperf.com –
@JamesMontagne Я не знал, что он существует. Спасибо, мне нужно будет добавить закладку для дальнейшего использования. –
@nnnnnn Да, я заметил опечатку и исправил пару минут назад. –