@singuerinc


2014.03.17 by Nahuel Scotti | 2 min read

Require.js and Javascript inheritance


Quick example, Require.js + Javascript inheritance.

Our Human class:

define("Human", [], function () {
  // static private var
  var _numEyes = 2;

  // constructor
  var Human = function (name) {
    // public var
    this.name = name;

    // pseudo-protected var
    this._age = 0;
  };

  // instance method
  Human.prototype.walk = function () {
    return this.name + " is walking";
  };

  Human.prototype.setAge = function (value) {
    this._age = value;
  };

  Human.prototype.getAge = function () {
    return this._age;
  };

  Human.prototype.getNumEyes = function () {
    return _numEyes;
  };

  // class static method
  Human.GET_TYPE = function () {
    return "biped";
  };

  // class static const
  Human.NUM_LEGS = 2;

  return Human;
});

Extending "Human"

define("John", ["Human"], function (Human) {
  var John = function () {
    Human.call(this, "John");
    this._age = 28;
  };

  John.prototype = Object.create(Human.prototype);

  var _super_ = Human.prototype;

  John.prototype.walk = function () {
    return _super_.walk.call(this) + " quickly";
  };

  return John;
});

Create a Human

require(["Human", "John"], function (Human, John) {
  console.log(Human.GET_TYPE()); // biped
  console.log(Human.NUM_LEGS); // 2

  var human = new Human("Peter");
  console.log(human.name); // Peter
  console.log(human.walk()); // Peter is walking
  console.log(human.getAge()); // 0

  var john = new John();
  console.log(john.name); // John
  console.log(john.walk()); // John is walking quickly
  console.log(john.getAge()); // 28
  console.log(john.getNumEyes()); // 2
});
  • #javascript
  • #requirejs