javascript - How do I dispose of a prototype in JS? -


i've got thorny issue , although answer may obvious, cannot see how i'm trying do.

i have created script library application uses js prototypes , templating dynamically instantiate dom elements , wire elements handlers. example following:

var ppane = new awp.iuipanel(theobject, { title: 'select filter(s)', iddisplay: 'block', idstring: params.sender._options['title'] }); 

awp.iuipanel class defined function prototype, e.g:

awp.iuipanel = function() { <i'm constructor> } awp.iuipanel.prototype = { <a bunch of methods here> } 

the methods inside instance create dom element (in case floating panel) , establish event bindings it, wire control elements, etc.

the advantage of going down path through single call create new instance of class can build associated dom element, , once instantiated, class methods have been wired execute against element things position relative target object, respond relevant browser events, etc.

the problem have when want dispose of construct. can dispose dom element easily. still have class instance in memory methods wired browser events looking dom element has been disposed. need able dispose not of dom element, of class instance, , cannot figure out how that.

how can 1 dispose of function prototype once declared? seems ought simple, i'm finding decidedly not so.

for background info, here example of class defining it:

this pseudo-code(ish)...

awp.trivialexample = function(somedomref, someoptionset) {    this._id = someoptionset['name'];    this._width = someoptionset['width'];    this._width = someoptionset['height'];    this._domref = somedomref;    this._object = '';     this.constructdom();    this.wireevents();  }  awp.trivialexample.prototype = {     constructdom: function() {       // build complex dom element relative provided dom ref using       // desired , height.  uses template , won't give precise example       // of such template.       jquery("#atemplate").tmpl(somejsondata).appendto("body");     },     positionrelative: function() {       // function location of specific dom ref , maintain       // relative position dom element constructed     },     wireevents: function() {       // hook events using jquery (example)       jjquery(window).resize(this.positionrelative);     }  } 

the above trivial example take in dom object reference, , dynamically construct new dom element , wire browser events maintain relative position between these 2 objects when page sized.

when dispose of new object, need dispose of class instance , cannot find simple way that.

all appreciated.

thanks;

a suggestion on event listeners referencing deleted dom node:

just have 'wireevents', should have corresponding 'unwireevents' in case decide stop using object. addeventlistener() needs used in conjuction removeeventlistener() in case. should modify prototype remove event listeners when corresponding dom node 'disposed', say.


Comments