require

require 的目标是将代码模块化的,它使用了不同于传统 script 标签来异步加载脚本。

为什么要使用 require

1:
早期我们写代码都是将所有代码写入一个js文件, 当业务逻辑过于复杂时会不方便管理
然后我们把不同功能的代码写入不同的文件, 需要时使用 script 标签引入到页面中。
到这里会出现一个页面中写入了很多的 script 标签, 当不同的页面引入相同的 js 时会出现很多重复的代码。
2:
不同的程序员写的代码各不相同, 因为 js 没有一个标准的写法, 每一个人的思维都不同。
3:
历史是需要进步的, 当前端越来越复杂的时候, 我们需要工具来完成一些简单却复杂的工作, 工程师只需要负责业务的实现, 团队成员需要时只需要引入过去即可。

require 的出现

// first_module.js:
define(function(){
	function main(){
		alert("hello world");
	}
	return main;
});
// main.js:
require( ['first_module'], function( main ) {
	main(); // alert  hello world
});
require 规定了一个模块的定义, 使用 define 函数定义一个模块
require 规定了获取一个模块使用 require 来获取模块, 并将该模块作为一个参数返回回来

使用 require 获取模块时注意第一个参数是一个数组, 如果没有依赖的模块必须给一个空的数组, 依赖多个模块依次写入到数组中, 返回的顺序为数组的顺序