JS中的模块化

这篇博客探讨了JavaScript中的模块化开发,通过一个实例解释了如何使用立即执行函数表达式(IFE)创建闭包,以及如何通过`require`和`exports`暴露公共接口。文章详细阐述了`modules`变量的作用,它是模块私有的,用于存储和挂载模块。作者还分析了模块定义和实现的过程,展示了如何在模块间进行调用,并强调了闭包在保持词法作用域中的变量存活中的关键作用。
摘要由CSDN通过智能技术生成

今天看YDKJS时,明白了一个以前一直疑惑的东西,那就是JS中的模块开发,之前也使用过require.s进行模块化的开发,但是一直不能明白其中具体的原理,看了YDKJS的讲解后,真的是豁然开朗,在此记录其中一个实例的代码,并进行解析。

	var myModules = (function  foo(){
		var modules = {};
		function get(name){
			return modules[name];
		}
		function define(name, deps, impl){
			for(var i = 0; i < deps.length; i++){
				deps[i] =  modules[ deps[i] ];
			}
			modules[name] = impl.apply( impl, deps );
		}
		return {
			get: get,
			define: define
		}
	})();
	
	myModules.define('foo',[],function(){
		function hello(val){
			console.log('hello',val);
		}
		return {
			hello: hello
		}
	});
	myModules.define('test',['foo'],function(foo){
		function useHello(val){
			var log = "I am from test" + val;
			foo.hello( log );
		}
		return {
			useHello: useHello
		}
	})	
	myModules.get('test').useHello('hello  world');

说明࿱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值