Subclassing in JS (Prior to ES6 Class)

Create superclass and subclass using ES5 Object.create or ES6 Object.setPrototypeOf

by Konstantin Rouda

JavaScript

;(function() {
   "use strict";
   
     /*===Subclassing in JS===*/

    /*
    * Super class
    */
    function Person(name, age) {
    };

    Person.prototype.getData = function() {
        console.log(`Name: ${name}. Age: ${age}.`);
    };

    /*
    * Sub class
    */
    function Teacher(subject) {
        this.subject = subject;
    };

    Teacher.prototype = Object.create(Person.prototype);
    Teacher.prototype.constructor = Teacher;
    
    // another way to set prototype via Object.setPrototypeOf(obj, proto);
    /// Not advised method, though, due to performance issues.
    /// ( for more info please refer to: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf )
    //Object.setPrototypeOf(Teacher, Person); 



   /// TEST
   var tch = new Teacher("Algebra");
   
  debugger;
   
})();