javascript API架子2010-04-09 博客园 kuku//Include syntactic sugar to help the development of out interface.
Function.prototype.method = function(name, fn){
this.prototype[name] = fn;
return this;
};
(function(){
function _$(els){
//...
}
/*
Events
* addEvent
* getEvent
*/
_$.method("addEvent", function(type, fn) {
//...
}).method("getEvent", function(e) {
//...
/*
DOM
* addClass
* removeClass
* replaceClass
* hasClass
* getStyle
* setStyle
*/
}).method("addClass", function(className) {
//...
}).method("removeClass", function(className) {
//...
}).method("replaceClass", function(olcClass, newClass) {
//...
}).method("hasClass", function(className) {
//...
}).method("getStyle", function(prop) {
//...
}).method("setStyle", function(prop, val) {
//...
/*
AJAX
* load. Fetches an HTML fragment from a URL and inserts it into an element.
*/
}).method("load", function(url, method) {
//...
});
window.$ = function(){
return new _$(arguments);
};
})();window.API = window.API || function() {
var name = "Hello world";
//Privileged mutator method.
this.setName = function(newName){
name = newName;
return this;
};
this.getName = function(callback){
callback.call(this, name);
return this;
};
};
var api = new API;
api.getName(console.log).setName("Meow").getName(console.log);