← Назад к вопросам
Что такое функция-конструктор?
1.0 Junior🔥 132 комментариев
#Node.js и JavaScript#ООП
Комментарии (2)
🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Функция-конструктор — это обычная функция JavaScript, которая используется с ключевым словом new для создания новых объектов. Она служит шаблоном для создания объектов с определёнными свойствами и методами.
Основной принцип
Когда функция вызывается с new:
- Создаётся новый пустой объект
thisвнутри функции указывает на этот новый объект- Функция инициализирует свойства объекта
- Функция автоматически возвращает этот объект
function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() { return `Привет, я ${this.name}`; };
}
const person1 = new Person('Иван', 30);
console.log(person1.name);
Как это работает
function Car(brand, model) {
this.brand = brand;
this.model = model;
this.start = function() { return `${this.brand} ${this.model} завелась`; };
}
const myCar = new Car('Toyota', 'Camry');
Prototype и наследование
Методы можно добавлять на прототип конструктора для экономии памяти.
function Animal(name) { this.name = name; }
Animal.prototype.speak = function() { console.log(`${this.name} издает звук`); };
const dog = new Animal('Шарик');
dog.speak();
instanceof и constructor
function Device(name) { this.name = name; }
const phone = new Device('iPhone');
console.log(phone instanceof Device); // true
console.log(phone.constructor === Device); // true
Класс ES6 (современный способ)
До введения классов функции-конструкторы были единственным способом. Теперь классы предпочтительнее.
class User {
constructor(id, username) {
this.id = id;
this.username = username;
}
getProfile() { return `User: ${this.username}`; }
}
const user = new User(1, 'ivan');
Возврат из конструктора
Если функция явно вернёт объект, вернётся он. Если примитив — проигнорируется.
function WeirdConstructor() {
this.value = 'default';
return { custom: 'object' };
}
const obj = new WeirdConstructor();
console.log(obj.custom); // 'object'
Функции-конструкторы — важный концепт для понимания JavaScript и наследования.