前端模块化
注:以下所有解释完全依照本人的主观思想,如果有不对的地方,请见谅
说到模块化,不得不先了解一下模块的起源,时间顺序方面不要太在意
- 初始,只是创建一个js文件,里面定义一些方法、常量等,提供给其他页面使用,这就是一个最简单的模块,那只算是一个功能文件,不是私有的,会污染全局
- 后来,就把所有的方法放到对象中,通过对象使用这些方法,但是外部可以通过对象更改里面的属性,而且也会污染全局,这个缺点也很不好
-
然后就出现了命名空间这个东西,命名空间就是说:若全局空间中已有同名对象,则不覆盖该对象,否则创建一个新的命名空间。
var MYNAMESPACE = MYNAMESPACE || {};
MYNAMESPACE.person = function() {
console.log("hello word");
};
这依然改变不了被修改的命运
模块化的发展
iife(自执行函数)
顾名思义,就是创建的时候就直接执行,然后返回一个参数对象(也可以只返回其他参数),对象中可以有方法,属性等,然后再外部进行调用,不会污染全局,也不会被外部更改
//创建自执行函数
var testUtils = function () {
function test(data){
console.log(data)
}