You consider delegating as reference , each object has an internal [[Prototype]] property and refers to its constructor , therefore
Object.getPrototypeOf(vehicle) === Vehicle.prototype;
This is the seudo code about what the new operator does:
function fakeNew(constructor) { var instance = {}; instance.__proto__ = constructor.prototype; instance.constructor = constructor; constructor.apply(instance, [].slice.call(arguments, 1)); return instance; }
source share