Я некоторый код, какJavaScript Прототипическая Наследование
function Vehicle(){
this.isMovable = true;
}
Vehicle.prototype = {
hasTyres:function(){ return true;},
needsFuel:true
};
var Car = function(){
Vehicle.call(this);
this.type = "Car";
};
Теперь
Это работает, даже если я создаю прототип как этот
Car.prototype = Object.create(Vehicle.prototype);
или
Car.prototype = Vehicle.prototype;
Что такое разница ?
Я был под впечатлением, что
Car.prototype = Object.create(Vehicle);
заставит автомобиль наследовать от автомобиля, но это не так.
Может кто-нибудь объяснить, что происходит внутри метода Object.create
Спасибо, SRK
Если вы хотите знать, что 'Object.create' делает, посмотрите на документацию MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create –
Автомобиль - это транспортное средство, но транспортное средство не обязательно является автомобилем (может быть автобусом). Поэтому вы не можете установить их прототипы равными друг другу. Подробнее о прототипе здесь. http://stackoverflow.com/a/16063711/1641941 – HMR