This commit is contained in:
Ilya Kantor 2016-11-14 16:31:21 +03:00
parent 3defacc09d
commit f99574f53b
178 changed files with 530 additions and 271 deletions

View file

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