Конструкторные функции JavaScript
Используйте конструкторные функции для создания множества объектов с одинаковой структурой.
Конструкторная функция выступает в роли чертежа. Вы используете ключевое слово new, чтобы создавать объекты на основе этого чертежа. Имена конструкторов следует начинать с заглавной буквы.
Как это работает:
При использовании ключевого слова new JavaScript выполняет четыре действия:
- Создает новый пустой объект.
- Устанавливает
thisтак, чтобы он указывал на этот новый объект. - Выполняет код функции.
- Возвращает новый объект.
Ключевое слово this имеет решающее значение. Внутри функции this ссылается на ваш новый объект.
Пример:
function Employee(name, salary) { this.name = name; this.salary = salary; }
const emp1 = new Employee("Ram", 50000); const emp2 = new Employee("Kumar", 60000);
Оба объекта имеют одинаковую структуру.
Добавление методов:
Вы можете добавлять функции внутрь конструктора.
function Employee(name, salary) { this.name = name; this.salary = salary; this.displayInfo = function() { console.log(this.name + " earns " + this.salary); }; }
Управление памятью:
Добавление методов непосредственно внутри конструктора создает новую копию для каждого объекта. Это потребляет больше памяти.
Вместо этого используйте свойство prototype.
Employee.prototype.greet = function() { console.log("Hello " + this.name); };
Теперь каждый сотрудник использует одну и ту же копию метода greet. Это делает ваш код более эффективным.
Резюме:
- Используйте объектные литералы для одиночных объектов.
- Используйте конструкторные функции для множества объектов с одинаковой структурой.
Источник: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k