let module=(function(){ const moduleList={}; function define(name,modules,action){ modules.map((m,i)=>{ modules[i]=moduleList[m]; }) moduleList[name]= action.apply(null,modules); console.log(moduleList); } return { define }; })(); module.define('hd',[],function(){ return { first(arr){ return arr[0]; }, max(arr,key){ return arr.sort((a,b)=>b[key]-a[key])[0]; } } }); module.define('lesson',['hd'],function(hd){ let data=[ {name:'js',price:123}, {name:'mysql',price:322}, ] console.log( hd.max(data,'price')); });