代码详解javascript模块加载器


Posted in Javascript onMarch 04, 2018

定义

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
  }
})();

使用

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');

以上就是本次分享的全部代码内容,大家可以测试下,如果还有任何不明白的地方可以在下方的留言区讨论,感谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 仿关机效果的图片层
Dec 26 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
Dec 06 Javascript
JavaScript定义变量和变量优先级问题探讨
Oct 11 Javascript
即将发布的jQuery 3 有哪些新特性
Apr 14 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
Aug 25 Javascript
详解Javascript中prototype属性(推荐)
Sep 03 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 Javascript
javascript表达式和运算符详解
Feb 07 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
Mar 01 Javascript
详解vue中async-await的使用误区
Dec 05 Javascript
JavaScript简易计算器制作
Jan 17 Javascript
Vue用v-for给src属性赋值的方法
Mar 03 #Javascript
vue中v-for加载本地静态图片方法
Mar 03 #Javascript
基于vue中解决v-for使用报红并出现警告的问题
Mar 03 #Javascript
基于Vuejs的搜索匹配功能实现方法
Mar 03 #Javascript
vue.js select下拉框绑定和取值方法
Mar 03 #Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
Mar 03 #Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
Mar 03 #Javascript
You might like
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
用PHP和ACCESS写聊天室(七)
2006/10/09 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
2014/01/15 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
Python根据区号生成手机号码的方法
2015/07/08 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
要账委托书范本
2014/09/15 职场文书
初三语文教学计划
2015/01/22 职场文书
话题作文之成长
2019/12/09 职场文书
Django drf请求模块源码解析
2021/06/08 Python
python数字类型和占位符详情
2022/03/13 Python