Popularity
3.1
Declining
Activity
0.0
Stable
752
34
83

Description

An expressive, cross platform JavaScript Class provider with a classical interface to prototypal inheritance.

Code Quality Rank: L5
Monthly Downloads: 0
Programming language: JavaScript
Tags: Class     Ender     Inheritance     Oop     Prototype    
Latest version: v1.4.1

klass alternatives and similar libraries

Based on the "Class" category.
Alternatively, view klass alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of klass or a related project?

Add another 'Class' Library

README

Klass

An expressive, cross platform JavaScript Class provider with a classical interface to prototypal inheritance.

API

creating a Class

var Person = klass(function (name) {
  this.name = name
})
  .statics({
    head: ':)',
    feet: '_|_'
  })
  .methods({
    walk: function () {}
  })

Subclassing

var SuperHuman = Person.extend(function (name) {
  // super class is automagically called
})
  .methods({
    walk: function() {
      this.supr()
      this.fly()
    },

    fly: function() {}

  })

new SuperHuman('Zelda').walk()

Object Literal Interface

var Foo = klass({
  foo: 0,
  initialize: function() {
    this.foo = 1
  },
  getFoo: function () {
    return this.foo
  },
  setFoo: function (x) {
    this.foo = x
    return this.getFoo()
  }
})

note: initialize will be called on class invocation

Implement

because sometimes you want to overwrite OR mixin an instance method

// note you can optionally pass an object literal to extend too ;)
var Alien = SuperHuman.extend({
  beam: function() {
    this.supr()
    // beam into space
  }
})

var Spazoid = new Alien('Zoopo')

if (beamIsDown) {
  Spazoid.implement({
    beam: function() {
      this.supr()
      // fallback to jets
      this.jets()
    }
  })
}

Environments

Klass is Common JS compliant and provides the Modules 1.1 interface to allow two flavors of development. See the implementations below:

Browser

<script src="path/to/klass.js"></script>
<!-- klass() is exposed to context -->

As a node module

npm install klass
var klass = require('klass')

Ender compatibility

add klass to your ender compilation

ender add klass

Developers

npm install
make
make test

Keep your edits localized to src/klass.js

LICENSE

MIT

Happy Klassing!


*Note that all licence references and agreements mentioned in the klass README section above are relevant to that project's source code only.