跳到主要内容

CMD

一、认识


CMDCommon Module Definition 使用 define 函数来定义模块。通过 require 函数来加载模块。模块的依赖在模块内部定义。在模块文件中,使用 require 函数来加载模块依赖。这种方式使得模块的依赖在模块实际使用时才被加载。CMD 规范的模块在实际使用时同步加载即动态同步记载,即模块及其依赖在模块使用时才会被加载和执行,这意味着模块的加载可能会影响后续代码的执行。

二、语法


定义模块

// utils.js
define(function(require, exports, module) {
var dep1 = require('dependency1');
var dep2 = require('dependency2');

function add(a, b) {
return a + b;
}
module.exports = {
add: add
};
});

加载模块

// main.js
define(function(require) {
var utils = require('utils'); // 模块在实际使用时加载
console.log(utils.add(1, 2)); // 3
});

三、问题


3.1 AMDCMD 有什么区别?

AMD 使用 define 函数来定义模块。通过 require 函数来加载模块。在定义模块时显式声明其依赖。即,在定义一个模块时,你需要告知模块系统它依赖了哪些其他模块。模块及其依赖是异步加载的。这意味着模块的加载不会阻塞后续代码的执行。模块会在后台加载,当所有依赖项都加载完成后,回调函数才会执行。加载顺序由模块管理器控制,确保模块及其依赖按正确的顺序加载。

CMD 使用 define 函数来定义模块。通过 require 函数来加载模块。模块的依赖在模块内部定义。在模块文件中,使用 require 函数来加载模块依赖。这种方式使得模块的依赖在模块实际使用时才被加载。CMD 规范的模块在实际使用时同步加载即动态同步记载,即模块及其依赖在模块使用时才会被加载和执行,这意味着模块的加载可能会影响后续代码的执行。