JavaScript/Notes/CustomEvents
Jump to navigation
Jump to search
What are they?[edit]
An event is a function call that signifies something happened.
Data Received[edit]
Example: HSVPicker.
var transport = new AjaxTransport(url);
transport.onsuccess = transportSuccessHandler;
function transportSuccessHandler(ev) {
var data = ev.data;
updateTable(data);
}
Custom calls notify subscribers. The function is either defined by the "class" (default) or shadowed on the instance, by the client of the API.
Objects Talking[edit]
- Class - defines methods and default handlers
- Instance - shadows class
- Instance usage (from other objects)
Why?[edit]
Centralized dispatch. Method called from many places and when it is done, shared notifications fire.
var tableSort = new Factory(function() {
function _getSortFunction(sortType) {
if(sortType == "number") {
return function() { };
}
}
function _isSortedBy(tableSort, sortType) {
}
var configData = {};
function TableSort(id, config) {
this.id = id;
configData[id] = Object.create(config);
}
TableSort.prototype.sortBy = function(sortType) {
var config = configData[this.id];
if(config.currentSort != sortType) {
config.sortFunction(this);
this.onsort(sortType);
}
};
return TableSort;
});
function Factory(getConstructor){
var i = 0, ctor;
this.getById = getById;
function getById(id, config) {
var instances = this.instances;
if(!instances) { // First time.
instances = this.instances = {};
// Get the constructor.
ctor = getConstructor(this);
}
return instances[id] || (instances[id] = new ctor(id, config));
}
}