全国统一服务热线:400-633-9193

代码详解javascript模块加载器

    网络     2018-03-22    1165

定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var MyModules = (function Manager() {
  var modules = {};
  function define (name, deps, impl) {
    for(var j = 0, length = deps.length; j < length; j++){
      deps[j] = modules[deps[j]];
    }
    modules[name] = impl.apply(impl, deps);
  }
 
  function get (name) {
    return modules[name];
  }
 
  return {
    define: define,
    get: get
  }
})();

使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
MyModules.define('test1', [], function() {
  function hello(name) {
    console.log(name);
  }
   
  return {
    hello: hello
  }
});
 
MyModules.define('test2', ['test1'], function(test1) {
  function age(name, age) {
    console.log(test1.hello(name));
    console.log(age);
  }
   
  return {
    age: age
  }
});
 
MyModules.get('test2').age('mumu', '27');

以上就是本次分享的全部代码内容,大家可以测试下


  分享到:  
0.2394s