Advertisement
sanjay1909

CallbackCollection-JS

Jan 12th, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function CallbackNumber(val){
  2.     var _value = val;
  3.     var callbacks = [];
  4.         this.addCallback = function (callbackFn){
  5.         callbacks.push(entry);
  6.         };
  7.         this.triggerCallbacks =  function(){
  8.             for(var i = 0 ; i < callbacks.length ; i++ ){
  9.             callbacks[i].call(this);
  10.             }
  11.     };
  12.     this.getValue = function(){
  13.             return _value
  14.         };
  15.     this.setValue = function(val){
  16.             if(_value != val){
  17.                     _value  = val;
  18.                     this.triggerCallbacks();
  19.             }        
  20.         };
  21. }
  22. // -------- test Code ----------//
  23. var num1 = new CallbackNumber(1);
  24. var num2 = new CallbackNumber(2);
  25. num1.addCallback(function(){console.log("num1's Callback called");});
  26. num2.addCallback(function(){console.log("num2's Callback called");});
  27. num2.setValue(6) // num2's Callback called
  28.  
  29. // Test - 1
  30. num2.addCallback(function(){console.log(num1.getValue());});
  31. num2.setValue(22)
  32. // num2's callback called
  33. // 22
  34.  
  35. // Test - 2
  36. num2.addCallback(num1.getValue.bind(num1));
  37. num2.setValue(8);
  38. // num2's callback called
  39. // 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement