**Нет, не распознает, выведет `false`.** Свойство `constructor` содержится в `prototype` функции по умолчанию, интерпретатор не поддерживает его корректность. Посмотрим, чему оно равно и откуда оно будет взято в данном случае. Порядок поиска свойства `rabbit.constructor`, по цепочке прототипов: 1. `rabbit` -- это пустой объект, в нём нет. 2. `Rabbit.prototype` -- в него при помощи `Object.create` записан пустой объект, наследующий от `Animal.prototype`. Поэтому `constructor'а` в нём также нет. 3. `Animal.prototype` -- у функции `Animal` свойство `prototype` никто не менял. Поэтому оно содержит `Animal.prototype.constructor == Animal`. ```js run function Animal() {} function Rabbit() {} Rabbit.prototype = Object.create(Animal.prototype); var rabbit = new Rabbit(); *!* alert( rabbit.constructor == Rabbit ); // false alert( rabbit.constructor == Animal ); // true */!* ```