05 Модуль -- 03 Прототипы Flashcards

1
Q

Если один объект имеет специальную ссылку в поле __proto__ на другой объект, то при чтении свойства из него, если искомое свойство отсутствует в самом объекте, оно ищется в объекте

A

в другом объекте, на который ссылается __proto__.

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

Объект, на который указывает ссылка в __proto__,

A

называется прототипом.

Пример: dog.__proto__ = animal; В данном примере animal это прототип для dog.

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

Прототип — это резервное хранилище свойств и методов объекта, автоматически используемое при поиске. Как происходит поиск?

A

Объекты можно организовать в цепочки так, чтобы свойство, не найденное в одном объекте, автоматически искалось бы в другом.
В конце этой цепочки находится null. В случае первого совпадения будет возвращено значение свойства. Если интерпретатор доберется до конца цепочки и не найдет свойства с таким ключом, то вернет undefined.

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

Для того чтобы правильно задать прототип объекта, можно использовать метод

A

Object.create(obj), передав параметром obj ссылку на объект который мы хотим сделать прототипом для создаваемого объекта.

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

Что делает метод obj.hasOwnProperty(prop) ?

A

метод, который возвращает true, если свойство prop принадлежит самому объекту obj, а не его прототипу, иначе false.

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

Что вернет метод Object.keys(obj) ?

A

вернет массив только собственных ключей объекта obj, поэтому рекомендуется использовать именно его.

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

Так как функция это тоже объект, у каждой функции, кроме стрелочных, есть свойство

A

prototype, в котором изначально хранится объект с единственным полем constructor, указывающим на саму функцию-конструктор.

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

При создании объекта через new, в его поле __proto__

A

записывается ссылка на объект хранящийся в свойстве prototype функции-конструктора.

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