tsunami
log in
email
password
links
newest items
tag list
syntax reference
tag:time
history
item name
tags
{{function ObservedVariable(value) { var _observers = []; this.GetValue = function GetValue() { return value; } this.SetValue = function SetValue(newValue) { if (value == newValue) return; value = newValue; for (var i = _observers.length - 1; i >= 0; i--) { if (_observers[i](this) === false) _observers.splice(i, 1); } } this.AddObserver = function AddObserver(observer) { _observers.push(observer); } } function Test() { var ov = new ObservedVariable(1); WatchValue(ov); alert('Setting new value'); ov.SetValue(42); } function WatchValue(ov) { var someValue = 'hello'; alert('About to start watching'); ov.AddObserver(function(changedVariable) { alert('New value: ' + changedVariable.GetValue() + ' someValue: ' + someValue); }); } Test();}}
some permissive license goes here
contact