Implement Inheritance

"is a" relationship ex: an apple is a fruit, an employee is a person, and a piano is an instrument.

by Alexandre Simoes

JavaScript

var Vehicle = (function () {
    // create the vehicle
    function Vehicle() {
        this.year = null;
        this.make = null;
        this.model = null;
    }
    
    // isolate vehicle methods in its prototype
    Vehicle.prototype = {
        getInfo: function () {
            return this.year + ' ' + this.make + ' ' + this.model;
        },
        startEngine: function () {
            return 'Vroom';
        }
    }
    
    return Vehicle;
})();


// create the car that has Vehicle as its prototype
//    and adds wheelQuantity as new property
var Car = function (year, make, model) {
    this.year = year;
    this.make = make;
    this.model = model;
    this.wheelQuantity = 4;
};
Car.prototype = new Vehicle();


// now to simulate an implementation, 
//    lets create a Fiat Punto car instance
var fiatPunto = new Car(2012, 'Fiat', 'Punto');

// Test the result
console.log(fiatPunto.make);
console.log(fiatPunto.wheelQuantity);
console.log(fiatPunto.getInfo());