StructureJS
0.14.1A 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.
///<reference path='_declare/jquery.eventListener.d.ts'/> (function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { define(["require", "exports", './util/Util'], factory); } })(function (require, exports) { "use strict"; var Util_1 = require('./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) */ var BaseObject = (function () { function 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 */ this.sjsId = null; this.sjsId = Util_1.default.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 */ BaseObject.prototype.getQualifiedClassName = function () { return Util_1.default.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(); * } */ BaseObject.prototype.destroy = function () { for (var key in this) { if (this.hasOwnProperty(key) && key !== 'sjsId') { this[key] = null; } } }; return BaseObject; }()); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = BaseObject; });