js 模块化

js 模块化

模块化主要是用来抽离公共代码,隔离作用域,避免变量冲突等。

模块化的整个发展历史如下:

IIFE:使用自执行函数来编写模块化,特点:在一个单独的函数作用域中执行代码,避免代码冲突。

js 复制代码
(function () {
  return {
    data: [],
  };
})();

AMD:使用 require 来编写模块化,特点:依赖必须提前声明好。

js 复制代码
define("./index.js", function (code) {
  //code 就是index.js返回的内容
});

CMD:使用 seaJS 来编写模块化,特点:支持动态引入依赖文件。

js 复制代码
define(function (require, exports, module) {
  var indexCode = require("./index.js");
});

CommonJS:nodeJS 中自带的模块化。

js 复制代码
var fs = require("fs");

UMD:兼容 AMD,CommonJS 模块化语法。

webpack(require.ensure):webpack2.x 版本中的代码分割。

ES Modules:ES6 引入的模块化,支持 import 来引入另一个 js。

相关推荐
拽着尾巴的鱼儿5 分钟前
Java 对象的深拷贝和浅拷贝
java·开发语言
韩曙亮18 分钟前
【错误记录】flutter attach 附加设备 执行报错 ( 附加设备注意事项 )
android·javascript·flutter·flutter attach
fie888921 分钟前
matlab打靶法求解两点边值优化问题
开发语言·算法·matlab
倾颜26 分钟前
React 自定义 Hook 实战:把 AI Chat 的会话流和滚动体验从组件中拆出来
前端·react.js·next.js
skywalk816329 分钟前
请结合以下说明,先完成类似python的内置函数。 然后再去完成内置库(标准款) ‌内置函数‌
开发语言·python
vipbic37 分钟前
从一句话需求到可交互草图,我用 AI 设计了一个团队组件共享平台
前端
我不是懒洋洋39 分钟前
手写一个异步日志库:从printf到高性能无锁日志
java·c语言·开发语言·c++·visual studio
郝学胜-神的一滴40 分钟前
Python 高级编程 018:深挖 super
开发语言·python·程序人生·软件构建
hoiii18743 分钟前
基于MATLAB实现Lamb波频散曲线求解
开发语言·matlab
李少兄43 分钟前
Java 工程化基石:标准目录结构与 META-INF 元信息机制
java·开发语言