StructureJS
0.15.2A class based utility library for building modular and scalable web platform applications. Features opt-in classes and utilities which provide a solid foundation and toolset to build your next project.
import Util from './util/Util'; /** * The {{#crossLink "BaseObject"}}{{/crossLink}} class is an abstract class that provides common properties and functionality for all StructureJS classes. * * @class BaseObject * @module StructureJS * @submodule core * @requires Util * @constructor * @author Robert S. (www.codeBelt.com) */ class BaseObject { /** * The sjsId (StructureJS ID) is a unique identifier automatically assigned to most StructureJS objects upon instantiation. * * @property sjsId * @type {int} * @default null * @writeOnce * @readOnly * @public */ public sjsId:number = null; constructor() { this.sjsId = Util.uniqueId(); } /** * Returns the fully qualified class name of an object. * * @method getQualifiedClassName * @returns {string} Returns the class name. * @public * @example * let someClass = new SomeClass(); * someClass.getQualifiedClassName(); * * // SomeClass */ public getQualifiedClassName():string { return Util.getName(this); } /** * The purpose of the destroy method is to make an object ready for garbage collection. This * should be thought of as a one way function. Once destroy is called no further methods should be * called on the object or properties accessed. It is the responsibility of those who implement this * function to stop all running Timers, all running Sounds, and take any other steps necessary to make an * object eligible for garbage collection. * * By default the destroy method will null out all properties of the class automatically. You should call destroy * on other objects before calling the super. * * @method destroy * @return {void} * @public * @example * destroy() { * this.disable(); * * this._childInstance.destroy(); * * super.destroy(); * } */ public destroy():void { for (let key in this) { if (this.hasOwnProperty(key) && key !== 'sjsId') { this[key] = null; } } } } export default BaseObject;