Javascript prototype - adding callback

I am using a javascript prototype template and I want to add a callback. I am trying something like:

http://jsfiddle.net/Qyhrb/2/

var Refinements = function () { }; Refinements.prototype = function () { Init = function () { $('.btn').click(Callback); }, Callback = function(){ alert('default function'); }; return { Init: Init, Callback : Callback }; }(); var refinements = new Refinements(); refinements.Callback = function(){ alert('new method'); }; refinements.Init(); 

Essentially, I want to pass a callback to an object and raise that callback when an event occurs.

+4
source share
4 answers
  Init = function () { var refinement = this; $('.btn').click(refinement.Callback || Callback); }, 

Fiddle

+5
source
 var Refinements = function() {}; Refinements.prototype = function() { return { init: function() { $('.btn').click(this.callback); }, callback: function() { alert('default function'); } } }(); var refinements = new Refinements(); refinements.callback = function() { alert('new method'); }; refinements.init(); 
+1
source

When I selected the prototype functions and deleted the fragment return { Init: Init, Callback : Callback }; Everything seems to be working fine.

 function Refinements() {} Refinements.prototype.Init = function() { $('.btn').click(this.Callback); }; Refinements.prototype.Callback = function() { alert('default function'); }; var refinements = new Refinements(); refinements.Callback = function(){ alert('new method'); }; refinements.Init();​ 

http://jsfiddle.net/Qyhrb/8/

+1
source
 Foobar = function() { this.callBack = function() { alert("Default method"); }; } Foobar.prototype = { Init: function() { var self = this; $(".btn").click(function() { self.callBack.call(); }); } }; var foobar = new Foobar(); foobar.Init(); foobar.callBack = function() { alert("Boo!"); }; 
0
source

All Articles