open-index/open-npm huggingface dataset:
npm package: 31i73-class
Description: 31i73.com simple node.js class library
Author: ProPuke@31i73.com
Latest version: 1.1.0

# 31i73-class

A simple node.js class library

## API

class( statics [, instanced] )

* **statics** - An object containing all static class properties.  
This may also contain the special property `_init` for declaring the initialiser, and `_inherits` for declaring a single or multiple classes to inherit from
* **instanced** - An object containing all instance class properties 

### Create a class

    var class = require('31i73-class');

	var Person = class({
		_init: function(name){
			this.name = name;
			this.age = undefined;
		}
	},{
		get_name: function(){ return this.name; },
		set_name: function(set){ this.name = set; },

		get_age: function(){ return this.age; },
		set_age: function(set){ this.age = set; }
	});

	var bob = new Person('bob');
	bob.set_age(42);

### Static methods

	var Person = class({
		_init: function(name){
			this.name = name;
			this.age = undefined;
		},
		create_adult: function(name){
			var create = new Person(name);
			create.set_age(24);
			return create;
		},
		create_child: function(name){
			var create = new Person(name);
			create.set_age(12);
			return create;
		}
	},{
		get_name: function(){ return this.name; },
		set_name: function(set){ this.name = set; },

		get_age: function(){ return this.age; },
		set_age: function(set){ this.age = set; }
	});

	var littly_timmy = Person.create_child('Timmy');

### Inheritence

	var Animal = class({
		_init: function(name){
			this.name = name;
			this.soundeffect = undefined;
		}
	},{
		set_soundeffect: function(path){
			this.soundeffect = new Soundeffect(path);
		}
	});

	var Horse = class({
		_inherits: Animal,
		_init: function(){
			Animal.call(this,'horse');
			this.set_soundeffect('horse.wav');
		}
	});

	//Multiple inheritence
	var Mule = class({
		_inherits: [
			Horse,
			Donkey
		],
		_init: function(){
			Animal.call(this,'mule');
			this.set_soundeffect('mule.wav');
		}
	});

	//a missing initialiser causes the first inherited classes initialiser to be called, instead
	var Shire_horse = class({
		_inherits: Horse
	});