代码详解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 相关文章推荐
js 代码集(学习js的朋友可以看下)
Jul 22 Javascript
解析JavaScript中点号“.”的多义性
Dec 02 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
js确认删除对话框效果的示例代码
Feb 20 Javascript
js style.display=block显示布局错乱问题的解决方法
Sep 21 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
JS插件clipboard.js实现一键复制粘贴功能
Dec 04 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
Aug 30 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
JavaScript实现简单计算器功能
Dec 19 Javascript
jQuery实现倒计时功能完整示例
Jun 01 jQuery
Vue向后台传数组数据,springboot接收vue传的数组数据实例
Nov 12 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
PHP 5.0 Pear安装方法
2006/12/06 PHP
php中防止伪造跨站请求的小招式
2011/09/02 PHP
php 错误处理经验分享
2011/10/11 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
JavaScript入门学习书籍推荐
2008/06/12 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python3.x上post发送json数据
2018/03/04 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
AJAX应用和传统Web应用有什么不同
2013/08/24 面试题
学习经验交流会主持词
2014/04/01 职场文书
服务理念标语
2014/06/18 职场文书
单位工作证明范文
2014/09/14 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
生活小常识广播稿
2015/08/19 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL