Never Patronize Mothers

    uptown

    1.1.0 • Public • Published

    Uptown

    Build Status

    Simplify prototypical inheritance. This tries to provide some simple constructs for providing functionality you get with ES6 classes, such as:

    • Constructor functions
    • Static class methods
    • Getter and setter methods

    Install

    Using npm:

    npm install uptown --save

    Using cdn:

    <script src="https://unpkg.com/uptown/dist/uptown.min.js"></script>
    • dist/uptown.js contains uptown and requires lodash to be loaded separately. Can be used with requirejs.
    • dist/uptown.min.js contains minified uptown and dependencies (lodash).

    Usage

    Use extendify to add the extend method to a class (note: it mutates the original class).

    The extend class method takes three options arguments:

    1. Object of instance properties
    2. Object of static methods and properties
    3. Object of getter and setter mutators
    var extendify = require('uptown').extendify;
     
    var Original = function() {};
     
    Original.prototype.hello = function(value) {
      return 'Hello, ' + value;
    }
     
    extendify(Original);
     
    var SubClass = Original.extend({
      // Specify a constructor for the new class
      constructor: function() {
        // Call parent constructor
        Original.apply(this, arguments);
      },
     
      hello: function(value) {
        // Add exclamation point
        return Original.prototype.hello.call(this, value + '!')
      }
    }, {
      // Specify static methods and properties
      staticMethod: function() {}
    }, {
      // Specify getters and setters for the new class
      foo: {
        get: function() {},
        set: function() {}
      }
    });

    New classes may also be created using the createClass function. The createClass function works just like .extend.

    var createClass = require('uptown').createClass;
     
    var Foo = createClass({
      constructor: function() {
        this.foo = 'bar';
      }
    });

    Install

    npm i uptown

    DownloadsWeekly Downloads

    718

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    240 kB

    Total Files

    6

    Last publish

    Collaborators

    • smizell