group-telegram.com/reactify_IT/1329
Create:
Last Update:
Last Update:
Она позволяет задавать шаблон для объектов, чтобы каждый новый объект, созданный через этот конструктор, имел определенные свойства и методы. Давайте разберем, как работает функция-конструктор.
Функция-конструктор выглядит как обычная функция, но она пишется с заглавной буквы по соглашению, чтобы отличаться от других функций. Внутри конструктора используется this для задания свойств создаваемого объекта.
function Person(name, age) {
this.name = name; // свойство name
this.age = age; // свойство age
}
Чтобы создать объект с помощью конструктора, используется оператор new. Он:
- Создает новый пустой объект.
- Связывает его с this внутри конструктора.
- Возвращает этот объект.
const person1 = new Person("Alice", 25);
console.log(person1.name); // Alice
console.log(person1.age); // 25
Если мы добавим метод прямо в конструктор, то он будет копироваться в каждый новый объект, что может тратить память.
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = function() {
console.log(`Hi, I'm ${this.name}`);
};
}
const person1 = new Person("Alice", 25);
person1.sayHello(); // Hi, I'm Alice
Для методов можно использовать prototype, чтобы метод существовал в одном экземпляре и не копировался для каждого объекта.
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHello = function() {
console.log(`Hi, I'm ${this.name}`);
};
const person1 = new Person("Alice", 25);
const person2 = new Person("Bob", 30);
person1.sayHello(); // Hi, I'm Alice
person2.sayHello(); // Hi, I'm Bob
В функции-конструкторе this указывает на новый объект, который создается при вызове через new. Это позволяет настраивать свойства и методы нового объекта.
- Наследование. Используя прототипы, можно создавать наследуемые свойства и методы.
- Проверка с instanceof. Для проверки, создан ли объект через конструктор, можно использовать instanceof.
console.log(person1 instanceof Person); // true
#javascript #this #function