StructureJS

0.15.2

A 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.

File: ts/BaseObject.ts

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;
 

AltStyle によって変換されたページ (->オリジナル) /