Skip to content
/ oo Public
forked from ecomfe/oo

Base library for OO style programming

License

Notifications You must be signed in to change notification settings

yanghuabei/oo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eoo

Base library for OO style programming, supports both browser and node

Usage

inherits Class

Top Class is the Class

// var Class = require('oo')
require(['oo'], function(Class) {

    // a base class
    var Super = Class({
        // constructor will be called on instantiation
         constructor: function() {

         },
         // members that will be added to the prototype
         say: function(content) {
             console.log(content)
         }
    });

    // inherits the Super
    var Sub = Class(Super, {
        constructor: function(prop) {
        //  $super method will call the Super Class's method with the same name,
        // in this, is `constructor`
            this.$super(arguments);

            // other code
            this.prop = prop;
        },

        say: function(content) {
            this.$super(arguments);
            console.log(this.prop)
        }
    });

    var sup = new Super();
    sup.say('hi');

    var sub = new Sub('sub');
    sub.say('fuck!');
});

inherits Object

This equals Object.create method.

Class.static(obj);

attribute

Class.prototype.constructor

if config a constructor, and it is a function, it will be called on instantiation

Class.prototype.$super

$super method will call the Super Class's method with the same name;

notice: because $super internal implementation uses the arguments.caller, $super can not be used in strict mode!

Class.prototype.$self

this property references the instance's Class:

var Base = Class();
var instance = new Base();
instance.$self === Base // true

Class.$superClass

references the super class:

var Super = Class();
var Sub = Class(Super);

Sub.$superClass === Super // true

Class.create

Class() equals Class.create()

Class.static

creates a new object with the specified prototype object and properties. Just equals Object.create method.

About

Base library for OO style programming

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%