var _t = this, cancel = function(){ _t.cancel(); } var onLoad = (_t.onLoadDeferred = new dojo.Deferred()); var onUnload = (_t._nextUnloadDeferred = new dojo.Deferred()); return { cancel: cancel, addOnLoad: function(func){onLoad.addCallback(func);}, addOnUnload: function(func){onUnload.addCallback(func);} };