Skip to content

bengl/sextend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sextend

sextend ("super extend") allows you to to do inheritance in JavaScript and in much the same manner as util.inherits in Node.js, except now you also inherit class variables too! Isn't that cool?

For further awesome, you can also add mixins at the same time!

Usage

For extending, just use it like you would use util.inherits in node.js.

In node:

var sextend = require('sextend');

function A(){}
A.coolStaticVar = "fun";
function B(){}
sextend(B, A);

console.log(A.coolStaticVar); // fun

In browser:

<script src="sextend.js"></script>
<script>
function A(){}
A.coolStaticVar = "fun";
function B(){}
sextend(B, A);

console.log(A.coolStaticVar); // fun
</script>

For mixins, you can add extra arguments that are mixin functions. A mixin function is just a function that refers to the destination object as this and adds properties accordingly.

Example:

function A(){}
function MyMixin(){
  this.prototype.instanceVar = 1;
  this.staticVar = 2;
}
sextend(A, null, MyMixin); // superclass is optional

console.log(A.staticVar); // 2
console.log((new A()).instanceVar); // 1

License

WTFPL

About

Super Extend: Inhertiance with static!

Resources

License

Stars

Watchers

Forks

Packages

No packages published