Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function CallbackNumber(val){
- var _value = val;
- var callbacks = [];
- this.addCallback = function (callbackFn){
- callbacks.push(entry);
- };
- this.triggerCallbacks = function(){
- for(var i = 0 ; i < callbacks.length ; i++ ){
- callbacks[i].call(this);
- }
- };
- this.getValue = function(){
- return _value
- };
- this.setValue = function(val){
- if(_value != val){
- _value = val;
- this.triggerCallbacks();
- }
- };
- }
- // -------- test Code ----------//
- var num1 = new CallbackNumber(1);
- var num2 = new CallbackNumber(2);
- num1.addCallback(function(){console.log("num1's Callback called");});
- num2.addCallback(function(){console.log("num2's Callback called");});
- num2.setValue(6) // num2's Callback called
- // Test - 1
- num2.addCallback(function(){console.log(num1.getValue());});
- num2.setValue(22)
- // num2's callback called
- // 22
- // Test - 2
- num2.addCallback(num1.getValue.bind(num1));
- num2.setValue(8);
- // num2's callback called
- // 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement