JavaScript模块化来龙去脉

script

IIFE(立即执行函数表达式)

命名空间

AMD/CMD

var Modules = (function ModulesManager() {
		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 getModule(name) {
			return modules[name];
		}

		return {
			define: define,
			getModule: getModule
		};
	 })();

	Modules.define('m1',[],function f1() {
		function hello(argument) {
			return "hello"+argument;
		}
		return {
			hello:hello
		};
	})
	Modules.define('m3',[],function f1() {
		function ff(argument) {
			return "ff"+argument;
		}
		return {
			ff:ff
		};
	})
	Modules.define('m2',['m1','m3'],function f2(argument,ff) {
		debugger;
		function awesome() {
			console.log(argument)
			console.log(argument.hello("finit"))
			console.log(ff.ff("finit"))

		}
		return {
			awesome:awesome
		};
		
	})

	var m2 =  Modules.getModule('m2');
	m2.awesome();

CommonJS 与 Node.js 模块系统

require
UMD(universal module definition)

在这里插入图片描述
在这里插入图片描述
IIFE(立即执行函数表达式)在此有应用,将需要执行的函数放在第二位,示例代码如下:

(function iife(fn){
	fn(window);
})(function def(global){
	......
);

ES6 Module 标准

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值