https://github.com/sboudrias/class-extend
Backbone like `Class.extend` for Node.js
https://github.com/sboudrias/class-extend
Last synced: 5 months ago
JSON representation
Backbone like `Class.extend` for Node.js
- Host: GitHub
- URL: https://github.com/sboudrias/class-extend
- Owner: SBoudrias
- License: mit
- Created: 2013-12-26T23:49:19.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2025-01-10T22:17:32.000Z (9 months ago)
- Last Synced: 2025-05-16T01:04:13.872Z (5 months ago)
- Language: JavaScript
- Size: 512 KB
- Stars: 88
- Watchers: 6
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE-MIT
- Security: SECURITY.md
Awesome Lists containing this project
README
Class.extend
============Backbone like `.extend` inheritance helper for Node.js
Usage
------------You basically got two options:
``` javascript
// 1. Extend from the blank class
const Base = require('class-extend');
const Sub = Base.extend();// 2. Add the .extend helper to a class
MyClass.extend = require('class-extend').extend;
```#### `.extend()`
`.extend` allow you to assign prototype and static methods.
If no `constructor` method is assigned, the parent constructor method will be called by default.
``` javascript
// Extend a class
const Sub = Parent.extend({
// Overwrite the default constructor
constructor() {},// Sub class prototypes methods
hello() { console.log('hello'); }
}, {
// Constructor static methods
hey() { console.log('hey'); }
});Sub.hey();
// LOG: heyconst instance = new Sub();
instance.hello();
// LOG: hello
```#### `.__super__`
Sub classes are assigned a `__super__` static property pointing to their parent prototype.
``` javascript
const Sub = Parent.extend();
assert(Sub.__super__ === Parent.prototype);
```License
---------------Copyright (c) 2025 Simon Boudrias
Licensed under the MIT license.