JSFiddle - React, Tailwind, and code Playground

by tonyleeper

JavaScript

/**
    classical inheritance pattern
*/

var BaseClass = (function () {
    
    var BaseClass = function () {
        this.baseClassProperty = "I am defined on the base class";
    };

    BaseClass.prototype.virtualTest = function () {
        console.log("BaseClass: virtualTest()");
        console.log(this.baseClassProperty);
    };
    
    return BaseClass;
}());

var TestClass = (function (_super) {
    
    var TestClass = function () {
        _super.call(this);

        this.testClassProperty = "I am defined on the test class";
    };

    TestClass.prototype = new _super();
    TestClass.prototype.constructor = TestClass;
    
    TestClass.prototype.virtualTest = function () {
        console.log("TestClass: virtualTest()");
        console.log(this.testClassProperty);
        console.log(this.baseClassProperty);
        _super.prototype.virtualTest.call(this);
    };
    
    return TestClass;
}(BaseClass));

var test = new TestClass();
test.virtualTest();

console.log("--------------");

var test2 = new BaseClass();
test2.virtualTest();