kick.core.Observable Class
Mixin class that allows listening for specific events on a class. Inspired by the observer pattern ( http://en.wikipedia.org/wiki/Observer_pattern ), where the Observable class has the role of the Subject class from the pattern. Note that there is no Observer objects - only observer functions (observerFn). The observable creates a fixed number of event listener queues for the class, which can be accessed using the methods addEventListener, removeEventListener and getObservers. Events can be fired using fireEvent.
To use the class as mixin: kick.core.Observable.call(observableObject,["Foo"]);
Constructor
kick.core.Observable
-
eventNames
Parameters:
-
eventNames
String
Example:
// 'raw usage'
var observable = new kick.core.Observable(["Foo"]);
var fooValue = 0;
var eventListener = function(v){fooValue = v;};
// register event listener for event "Foo"
observable.addEventListener("Foo", eventListener);
observable.fireEvent("Foo", 1);
// foo value is now 1
observable.removeEventListener("Foo", eventListener);
observable.fireEvent("Foo", 2);
// foo value is still 1, since the listener has been removed
// Use observer
var SomeClass = function(){
kick.core.Observable.call(this,["Foo"]);
// [...] rest of class
};
var o = new SomeClass();
o.addEventListener("Foo", function(){ console.log("Some foo!"); });
Item Index
Methods
addEventListener
-
eventName
-
observerFn
Add an observer function
Parameters:
-
eventName
String -
observerFn
Function
fireEvent
-
eventName
-
obj
Note that fire events should not be called from other classes
Parameters:
-
eventName
String -
obj
Object
getObservers
-
eventName
Gets or creates a list of observers bound to the eventName
Parameters:
-
eventName
String
Returns:
Array of observer functions
removeEventListener
-
eventName
-
observerFn
Parameters:
-
eventName
String -
observerFn
Function