UNPKG

tui-code-snippet

Version:
54 lines (49 loc) 1.27 kB
/** * @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;