8.26js文件引入vue组件/IIFE达到模块化编程
2017-08-26 本文已影响0人
我爱吃肥肠
起因:有个md5.js文件,用来给字符串md5加密,一般要把一个js文件引入vue的script部分,通过export和import的模块化方法进行,如果是在入口文件import的话,全部都可以用这个js文件,但是这个md5并不是通过export的方式导出,让我很是疑惑.
解决:这个js文件有个关键的代码段如下图:
![](https://img.haomeiwen.com/i7524466/04d27303147a1906.png)
这是一段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(){
};
var m2 = function(){
//...Javascript模块化编程(二):commonJS和AMD规范
};
return {
m1 : m1,
m2 : m2
};
})();