Как работает new
`new` используется для создания экземпляра объекта на основе функции-конструктора или класса. Процесс его работы можно разделить на несколько шагов:
1. Создание нового объекта: Когда вы используете его, JavaScript создаёт новый пустой объект.
2. Присвоение прототипа: Прототип созданного объекта устанавливается в значение свойства `prototype` функции-конструктора. Это означает, что новый объект наследует свойства и методы, определённые в прототипе конструктора.
3. Вызов функции-конструктора: Функция-конструктор вызывается с аргументами, переданными в неи, и контекстом `this`, установленным в только что созданный объект. Это позволяет добавлять свойства и методы непосредственно к экземпляру.
4. Возврат значения: Если функция-конструктор возвращает объект, то этот объект возвращается вместо только что созданного. Если возвращается не объект (например, примитивное значение) или функция-конструктор вообще ничего не возвращает, то возвращается созданный на шаге 1 объект.
Пример:
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.greet = function() {
console.log(`Привет, меня зовут ${this.name}!`);
};
// Создаём новый объект с помощью new
const person1 = new Person('Алексей', 30);
person1.greet(); // Выводит: "Привет, меня зовут Алексей!"
В этом примере `new Person('Алексей', 30)` создаёт новый объект, прототипом которого является `Person.prototype`, и вызывает функцию `Person` с `this`, указывающим на новый объект, что позволяет добавить свойства `name` и `age` к этому объекту. После этого, с новым объектом можно взаимодействовать, как с экземпляром `Person`, включая вызов методов, определённых в `Person.prototype`.
`new` позволяет создавать новые объекты на основе функций-конструкторов или классов, автоматически устанавливая связь между созданным объектом и прототипом конструктора, что обеспечивает наследование свойств и методов.
Feb. 27, 2024, easyoffer