首页 > 其他分享 >现代模块机制

现代模块机制

时间:2024-11-04 14:09:37浏览次数:3  
标签:function bar awesome MyModules 现代 模块 var 机制 hello

摘自《你不知道的js》这本书,第五章第五节:现代模块机制。

感觉这个很牛很高大上,但是不能完全看懂,抄下来,慢慢品读理解:

var MyModules = (
    function Manager(){
        var modules = {};
        function define(name,deps,impl){
            for(var i=0;i<deps.length;i++){
                deps[i] = modules[deps[i]];
            }
            modules[name] = impl.apply(impl,deps);
        }
        function get(){
            return modules[name];
        }
        return {
            define,
            get
        }
    }
)()

  

下面是这个模块的应用:

 

MyModules.define('bar',[],function(){
    function hello(who){
        return "Let me introduce:" + who;
    }
    return {
        hello: hello
    }
});

MyModules.define('foo',['bar'],function (bar) {
    var hungry = 'hippo';
    function  awesome() {
        console.log(bar.hello(hungry).toUpperCase());
    }
      return {
          awesome: awesome
      }  
})

var bar = MyModules.get('bar');
var foo = MyModules.get('foo');

console.log(
    bar.hello('hippo')
);
foo.awesome();

  

标签:function,bar,awesome,MyModules,现代,模块,var,机制,hello
From: https://www.cnblogs.com/cblx/p/18525090

相关文章

  • 说说Java的类加载机制?究竟什么是双亲委派模型?6B
    首先引入一个概念,什么是Java类加载器?一句话总结:类加载器(classloader)用来加载Java类到Java虚拟机中。官方总结:Java类加载器(英语:JavaClassloader)是Java运行时环境(JavaRuntimeEnvironment)的一部分,负责动态加载Java类到Java虚拟机的内存空间中。类通常是按需加载,即第一次使......
  • 《C语言程序设计现代方法》note-2 格式化输入/输出 运算符和表达式
    助记提要转换说明的格式;scanf处理输入的过程;除法操作的注意事项;运算符的结合性;不在子表达式中输入操作数的原因;表达式允许用作语句的问题;3章格式化输入/输出3.1printf函数printf函数用来显示格式串的内容,并在该串中指定位置插入要显示的值。printf(格式串,表达式1,......
  • 数字锁定检测电路在现代电子系统中扮演着至关重要的角色
    引言电荷泵锁相环(ChargePumpPhase-LockedLoop,CPPLL)作为现代电子系统中重要的时钟同步和频率合成元件,因其高稳定性、大捕获范围和易于集成的特点,被广泛应用于无线通信、频率综合器和时钟恢复电路中。在CPPLL的设计中,锁定检测电路是确保系统稳定运行的关键部分。本文将对电......
  • activemq - ack机制
    疑问:在写demo的时候,如果client被强制中断,消息来不及处理,这时候消息又出队列了,这样不是会产生严重的问题嘛?一个会话中,可以同时处理一批数据,如果一条失败了,之前的也要求回滚的话,要怎么处理?获取一个消息之后,发现程序无法处理这条消息,想要退还回去,该怎么办?方案:实际上,active......
  • python-17-包和模块-创建属于自己的python工具包
    python-17-包和模块一.说明python中的基础系列关于组织代码的基本单位就是包和模块,在真实项目中我们不可能将所有代码都写在一起,或者我们的一些工具类库等需要单独处理,方便各模块调用,怎么办?这时候包和模块就来了,可以很方便的帮我们组织代码。来开始我们今天的日拱一卒!。......
  • averaged_perceptron_tagger_eng模块
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注......