(二)学习seajs模块定义和模块引用相关API

本文详细介绍了CMD模块规范中的关键API,包括define函数的不同形式,require函数及其异步加载方式,exports和module.exports的使用,以及require的书写约定。内容摘自CMD模块定义规范和require书写约定,旨在帮助理解模块间的交互和组织方式。
摘要由CSDN通过智能技术生成

知道如何引入seajs,如何启动模块之后,现在我们改来看一下如何定义模块,如何让一个模块调用另一个模块。经常使用的 API 只有 define, require, require.async, exports, module.exports 这五个。本文主要摘抄自[CMD模块定义规范#242]和[require书写约定#259]。

在CMD规范中,一个模块就是一个文件。每个的书写格式如下:

define(function(require, exports, module) {

  // 模块代码

});


1.define Function

define 是一个全局函数,用来定义模块。

define define(factory)

define 接受 factory 参数,factory 可以是一个函数,也可以是一个对象或字符串。
factory 为对象、字符串时,表示模块的接口就是该对象、字符串。比如可以如下定义一个 JSON 数据模块:
define({ "foo": "bar" });

也可以通过字符串定义模板模块:
define('I am a template. My name is {
   {name}}.');

factory 为函数时,表示是模块的构造方法。执行该构造方法,可以得到模块向外提供的接口。factory 方法在执行时,默认会传入三个参数:require、exports 和 module:
define(function(require, exports, module) {

  // 模块代码

});

define define(id?, deps?, factory)

define 也可以接受两个以上参数。字符串 id 表示模块标识,数组 deps 是模块依赖。比如:
define('hello', ['jquery'], function(require, exports, module) {

  // 模块代码

});
id 和deps 参数可以省略。省略时,可以通过构建工具自
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AMD(Asynchronous Module Definition)和 CMD(Common Module Definition)是两种常见的JavaScript模块化规范,而CommonJS则是另一种常见的JavaScript模块化规范。 AMD和CMD都是异步加载JavaScript模块的规范,可以在页面加载完毕后再异步加载JavaScript模块。这样可以加快页面的加载速度,提高用户体验。 AMD规范是由RequireJS推广和实现的,它的特点是定义模块时采用的是函数式的语法。AMD模块通过define()函数定义模块的依赖通过数组参数来定义: ``` //定义模块 define(['module1', 'module2'], function(module1, module2) { //模块代码 }); ``` CMD规范是由SeaJS推广和实现的,它的特点是定义模块时采用的是对象式的语法。CMD模块通过define()函数定义模块的依赖通过函数参数来定义: ``` //定义模块 define(function(require, exports, module) { //引入依赖模块 var module1 = require('module1'); var module2 = require('module2'); //模块代码 }); ``` CommonJS规范则是由Node.js推广和实现的,它的特点是采用同步加载JavaScript模块的方式。CommonJS模块通过module.exports和require()函数来定义和引入模块: ``` //定义模块 module.exports = { //模块代码 }; //引入模块 var module1 = require('module1'); ``` 总的来说,AMD和CMD主要用于浏览器端的JavaScript模块化开发,而CommonJS主要用于服务器端的JavaScript模块化开发。在实际开发中,可以根据自己的需求选择合适的模块化规范。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值