Кто-нибудь может объяснить такую хитрую штуку.. Есть код:
function Car(speed) {
  Car.prototype = {
    getSpeed: function() {
      return speed;
    }
  }
  Car.prototype.constructor = Car;
}
var car = new Car(100);
Почему car не видит метода getSpeed?
car.getSpeed(); //ошибка
car.constructor.prototype.getSpeed(); //вернет speed=100
В то же время можно делать так (не переопределяя прототип):
function Car(speed) {
  Car.prototype.getSpeed = function() {
    return speed;
  }
}
var car = new Car(100);
car.getSpeed(); //100