8.26js文件引入vue组件/IIFE达到模块化编程

起因:有个md5.js文件,用来给字符串md5加密,一般要把一个js文件引入vue的script部分,通过export和import的模块化方法进行,如果是在入口文件import的话,全部都可以用这个js文件,但是这个md5并不是通过export的方式导出,让我很是疑惑.

解决:这个js文件有个关键的代码段如下图:

8.26js文件引入vue组件/IIFE达到模块化编程_第1张图片
md5.js模块化代码


这是一段AMD规范的代码,经查require.js和amd规范发现:define(function(){})和require()是AMD规范定义模块的方式,同样的,es6用export和import处理,commonjs用module.exports和require来处理。

AMD/es6/commonJS规范:AMD commonJS ES6 es6      monjs cmd amd  总结的很好

2,md5.js的写法用了一个IIFE的技巧,所有的方法封装到一个IIFE里面,这样可以达到不暴露私有成员的目的,又能模块化使用里面的成员方法。IIFE只需要把要暴露出的方法return出来就可以。里面的变量外部无法访问。这也是模块化编程的基本写法。

var module1 = (function(){

var _count = 0;

var m1 = function(){

//...Javascript模块化编程(一):模块的写法

};

var m2 = function(){

//...Javascript模块化编程(二):commonJS和AMD规范

};

return {

m1 : m1,

m2 : m2

};

})();

你可能感兴趣的:(8.26js文件引入vue组件/IIFE达到模块化编程)