tui-code-snippet
Version:
TOAST UI Utility: CodeSnippet
54 lines (49 loc) • 1.27 kB
JavaScript
/**
* @fileoverview Provide a simple inheritance in prototype-oriented.
* @author NHN FE Development Lab <dl_javascript@nhn.com>
*/
'use strict';
var createObject = require('./createObject');
/**
* Provide a simple inheritance in prototype-oriented.
* Caution :
* Don't overwrite the prototype of child constructor.
*
* @param {function} subType Child constructor
* @param {function} superType Parent constructor
* @memberof module:inheritance
* @example
* // ES6
* import inherit from 'tui-code-snippet/inheritance/inherit';
*
* // CommonJS
* const inherit = require('tui-code-snippet/inheritance/inherit');
*
* // Parent constructor
* function Animal(leg) {
* this.leg = leg;
* }
* Animal.prototype.growl = function() {
* // ...
* };
*
* // Child constructor
* function Person(name) {
* this.name = name;
* }
*
* // Inheritance
* inherit(Person, Animal);
*
* // After this inheritance, please use only the extending of property.
* // Do not overwrite prototype.
* Person.prototype.walk = function(direction) {
* // ...
* };
*/
function inherit(subType, superType) {
var prototype = createObject(superType.prototype);
prototype.constructor = subType;
subType.prototype = prototype;
}
module.exports = inherit;