今天看YDKJS时,明白了一个以前一直疑惑的东西,那就是JS中的模块开发,之前也使用过require.s进行模块化的开发,但是一直不能明白其中具体的原理,看了YDKJS的讲解后,真的是豁然开朗,在此记录其中一个实例的代码,并进行解析。
var myModules = (function foo(){
var modules = {};
function get(name){
return modules[name];
}
function define(name, deps, impl){
for(var i = 0; i < deps.length; i++){
deps[i] = modules[ deps[i] ];
}
modules[name] = impl.apply( impl, deps );
}
return {
get: get,
define: define
}
})();
myModules.define('foo',[],function(){
function hello(val){
console.log('hello',val);
}
return {
hello: hello
}
});
myModules.define('test',['foo'],function(foo){
function useHello(val){
var log = "I am from test" + val;
foo.hello( log );
}
return {
useHello: useHello
}
})
myModules.get('test').useHello('hello world');
说明