前端模块化iife、CJS、AMD、UMD、ESM的区别

前端模块化

注:以下所有解释完全依照本人的主观思想,如果有不对的地方,请见谅

说到模块化,不得不先了解一下模块的起源,时间顺序方面不要太在意

  • 初始,只是创建一个js文件,里面定义一些方法、常量等,提供给其他页面使用,这就是一个最简单的模块,那只算是一个功能文件,不是私有的,会污染全局
  • 后来,就把所有的方法放到对象中,通过对象使用这些方法,但是外部可以通过对象更改里面的属性,而且也会污染全局,这个缺点也很不好
  • 然后就出现了命名空间这个东西,命名空间就是说:若全局空间中已有同名对象,则不覆盖该对象,否则创建一个新的命名空间。

var MYNAMESPACE = MYNAMESPACE || {};
MYNAMESPACE.person = function() {
  console.log("hello word");
};

这依然改变不了被修改的命运

模块化的发展

iife(自执行函数)

顾名思义,就是创建的时候就直接执行,然后返回一个参数对象(也可以只返回其他参数),对象中可以有方法,属性等,然后再外部进行调用,不会污染全局,也不会被外部更改

//创建自执行函数
var testUtils = function () {
    function test(data){
        console.log(data)
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值