//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);
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛