JS实现简单路由器功能的方法
本文实例讲述了JS实现简单路由器功能的方法。分享给大家供大家参考。具体实现方法如下:
varwawa={}; wawa.Router=function(){ functionRouter(){ } Router.prototype.setup=function(routemap,defaultFunc){ varthat=this,rule,func; this.routemap=[]; this.defaultFunc=defaultFunc; for(varruleinroutemap){ if(!routemap.hasOwnProperty(rule))continue; that.routemap.push({ rule:newRegExp(rule,'i'), func:routemap[rule] }); } }; Router.prototype.start=function(){ console.log(window.location.hash); varhash=location.hash,route,matchResult; for(varrouteIndexinthis.routemap){ route=this.routemap[routeIndex]; matchResult=hash.match(route.rule); if(matchResult){ route.func.apply(window,matchResult.slice(1)); return; } } this.defaultFunc(); }; returnRouter; }(); varrouter=newwawa.Router(); router.setup({ '#/list/(.*)/(.*)':function(cate,id){ console.log('list',cate,id); }, '#/show/(.*)':function(id){ console.log('show',id); } },function(){ console.log('defaultrouter'); }); router.start();
希望本文所述对大家的javascript程序设计有所帮助。