Ошибка -- в том, что метод `walk` присваивается в конструкторе `Animal` самому объекту вместо прототипа. Поэтому, если мы решим перезаписать этот метод своим, специфичным для кролика, то он не сработает: ```js // ... // записывается в прототип Rabbit.prototype.walk = function() { alert( "прыгает " + this.name ); }; ``` Метод `this.walk` из `Animal` записывается в сам объект, и поэтому он всегда будет первым, игнорируя цепочку прототипов. Правильно было бы определять `walk` как `Animal.prototype.walk`. Тем более, что этот метод является общим для всех объектов, тратить память и время на запись его в каждый конструктор определённо ни к чему.