05 Модуль -- 02 Конструкторы Flashcards

1
Q

Функции вызываются используя два разных внутренних метода:

A

[[Call]] и [[Construct]]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Конструктор —

A

это обычная функция к которой применили оператор new. Это приводит к созданию нового объекта и вызову функции в контексте этого объекта.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Конструкторы принято называть, а в самом названии

A

с большой буквы, отражать тип создаваемого объекта

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Пример конструктора

A
const Hotel = function (name, stars, capacity) {
  this.name = name;
  this.stars = stars;
  this.capacity = capacity;
};
// В результате вызова
const hotel = new Hotel('Resort Hotel', 5, 100);
// Получаем такой объект
console.log(hotel);
// Hotel {name: "Resort Hotel", stars: 5, capacity: 100}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Какая функция не может быть конструктором

A

стрелочная. При вызове стрелки через new будет ошибка.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Когда функция вызывается без new, выполняется метод [[Call]],

A

который исполняет тело функции так, как оно описано в коде.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Когда функция вызывается с new, выполняется метод [[Construct]],

A

который отвечает за создание нового объекта и исполнения тела функции с this ссылающимся на этот объект.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Добавление методов(не по прототипу)

A

const Hotel = function (name, stars, capacity) {

this. name = name;
this. stars = stars;
this. capacity = capacity;
this. guestCount = 0;

this.greet = function (guestName) {
console.log(Hello ${guestName}, wellcome to ${this.name});
};

const hotel = new Hotel(‘Sunrise Hotel’, 5, 100);

console.log(hotel);
// Hotel {name: “Sunrise Hotel”, greet: ƒ, addGuests: f, removeGuests: f}
hotel.greet(‘Mango’); // Hello Mango, wellcome to Sunrise Hotel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly