PHP Classes

File: modules/system/assets/ui/js/foundation.baseclass.js

Recommend this page to a friend!
  Packages of Luke Towers   Winter   modules/system/assets/ui/js/foundation.baseclass.js   Download  
File: modules/system/assets/ui/js/foundation.baseclass.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Winter
Content management system that uses MVC
Author: By
Last change:
Date: 7 months ago
Size: 2,390 bytes
 

Contents

Class file image Download
/* * Winter JavaScript foundation library. * * Base class for Winter CMS back-end classes. * * The class defines base functionality for dealing with memory management * and cleaning up bound (proxied) methods. * * The base class defines the dispose method that cleans up proxied methods. * If child classes implement their own dispose() method, they should call * the base class dispose method (see the example below). * * Use the simple parasitic combination inheritance pattern to create child classes: * * var Base = $.wn.foundation.base, * BaseProto = Base.prototype * * var SubClass = function(params) { * // Call the parent constructor * Base.call(this) * } * * SubClass.prototype = Object.create(BaseProto) * SubClass.prototype.constructor = SubClass * * // Child class methods can be defined only after the * // prototype is updated in the two previous lines * * SubClass.prototype.dispose = function() { * // Call the parent method * BaseProto.dispose.call(this) * }; * * See: * * - https://developers.google.com/speed/articles/optimizing-javascript * - http://javascriptissexy.com/oop-in-javascript-what-you-need-to-know/ * - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript * */ +function ($) { "use strict"; if ($.wn === undefined) $.wn = {} if ($.oc === undefined) $.oc = $.wn if ($.wn.foundation === undefined) $.wn.foundation = {} $.wn.foundation._proxyCounter = 0 var Base = function() { this.proxiedMethods = {} } Base.prototype.dispose = function() { for (var key in this.proxiedMethods) { this.proxiedMethods[key] = null } this.proxiedMethods = null } /* * Creates a proxied method reference or returns an existing proxied method. */ Base.prototype.proxy = function(method) { if (method.ocProxyId === undefined) { $.wn.foundation._proxyCounter++ method.ocProxyId = $.wn.foundation._proxyCounter } if (this.proxiedMethods[method.ocProxyId] !== undefined) return this.proxiedMethods[method.ocProxyId] this.proxiedMethods[method.ocProxyId] = method.bind(this) return this.proxiedMethods[method.ocProxyId] } $.wn.foundation.base = Base; }(window.jQuery);