// define 声明模块 require使用模块
function define(moduleName, dependList, factory){
if(!this[__filename]){ this[__filename] = {} }
// 依赖缓存
this[__filename][moduleName] = {moduleName: moduleName, depends: dependList, factory: factory}
}
function require(moduleList, callback){
var dependModules = []
for(var i=0; i<moduleList.length; i++){
var module = this[__filename][moduleList[i]]
if(module.depends.length){
// 依赖递归
dependModules[i] = module.factory.apply(null, require(module.depends, module.factory))
}else{
dependModules[i] = module.factory.apply(null)
}
}
callback.apply(null, dependModules)
return dependModules
}
define('test', [], function(){
return 'test'
})
define('addText', ['test'], function(test){
return 'is ' + test
})
define('name', ['addText'], function(addText){
return 'lhh ' + addText
})
define('age', [], function(){
return '28'
})
require(['name', 'age'], function(name, age){
console.log(name, age)
})