代码详解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 相关文章推荐
可缩放Reloaded-一个针对可缩放元素的复用组件
Mar 10 Javascript
js控制input框只读实现示例
Jan 20 Javascript
js实现特定位取反原理及示例
Jun 30 Javascript
jquery果冻抖动效果实现方法
Jan 15 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
Oct 27 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
Oct 27 Javascript
文件上传,iframe跨域数据提交的实现
Nov 18 Javascript
Javascript blur与click冲突解决办法
Jan 09 Javascript
JS验证不重复验证码
Feb 10 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
轻松学习JavaScript函数中的 Rest 参数
May 30 Javascript
vue前端工程的搭建
Mar 31 Vue.js
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中文本操作的类
2007/03/17 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
java script编程起步(第三课)
2007/01/10 Javascript
Javascript Select操作大集合
2009/05/26 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
Python中字典的setdefault()方法教程
2017/02/07 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
大型活动策划方案
2014/01/12 职场文书
给实习单位的感谢信
2014/02/01 职场文书
班长竞选演讲稿
2014/04/24 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技