, чтобы сохранить свой прогресс
Поймите прототипную цепочку
Все объекты в JavaScript (за некоторыми исключениями) имеют prototype
. Кроме того, сам prototype
объекта является объектом.
функция Bird (name) {Поскольку
this.name = name;
}
тип Bird.prototype; // => объект
prototype
является объектом, prototype
может иметь свой собственный prototype
! В этом случае prototype
Bird.prototype
является Object.prototype
: Object.prototype.isPrototypeOf (Bird.prototype);Как это полезно? Вы можете вспомнить метод
// возвращает true
hasOwnProperty
из предыдущего hasOwnProperty
: пусть утка = новая птица («Дональд»);Метод
duck.hasOwnProperty ( "имя"); // => true
hasOwnProperty
определен в Object.prototype
, к которому можно получить доступ с помощью Bird.prototype
, к которому затем можно получить доступ duck
. Это пример цепи prototype
. В этой prototype
цепочке Bird
является supertype
для duck
, а duck
- subtype
. Object
- это supertype
как для Bird
и для duck
. Object
- это supertype
для всех объектов в JavaScript. Поэтому любой объект может использовать метод hasOwnProperty
.Измените код, чтобы показать правильную цепочку прототипов.
/**
* Your test output will go here.
*/