未测试:
AMD:
define, require
const modules = [];
loadScript = function(script, cb){
// 浏览器加载script
script.onLoad = function(){
}
}
load = function(module, cb){
loadScript(module.path, cb);
}
loadModules = function(ids, cb){
var done = function(){
if(ids.every( id => cache[id].load)){
cb.apply({}, ids.map(id => cache[id].fn));
}
};
ids.map(id => {
if(!cache[id].load){
load(cache[id], done)
}
})
}
define = function(id, deps, fn){
cache[id] = {
load: true,
deps: deps,
fn: fn,
}
}
require = function(deps, fn){
loadModules(deps, function(modules){
fn.apply({}, modules);
})
}