Помогите понять пожалуйста.
Есть два объекта:
function Animal(name) {
this.name = name;
this.x = 10;
this.y = 10;
}
function Rabbit(name){
this.name2 = name;
this.x = 20;
this.m = 1000;
}
var o1 = new Animal('n1');
var o2 = new Rabbit('n2');
Rabbit.prototype = Object.create(new Animal('Animal'));
Rabbit.prototype.run = function(){
console.log(++this.x);
}
var o = new Rabbit('Rabbit');
console.log(o);
console.log(Object.keys(o));
console.log(o); выводит:
Animal { name2="Rabbit", name="Animal" x=20, y=10, m=1000, run=function() }
Т.е свойства и методы обоих объектов, свойство x переопределилось.
А вот Object.keys(o) выводит только свойства и методы объекта Rabbit.
Подскажите, почему так происходит?