Javascript AMD模块化规范-备用

Javascript AMD模块化规范-备用

AMD是”Asynchronous Module Definition”的缩写,意思是”异步模块定义”。

模块定义
define(id?, dependencies?, factory);

其中:

  • id: 模块标识,可以省略。
  • dependencies: 所依赖的模块,可以省略。
  • factory: 模块的实现,或者一个JavaScript对象。

代码示例1: 定义一个alpha模块,依赖require,exports,beta模块

define(
"alpha"
, [
"require"
,
"exports"
,
"beta"
],
function 
(require, exports, beta) {
     
exports.verb =
function
() {
         
return 
beta.verb();
         
//Or:
         
return 
require(
"beta"
).verb();
     
}
}); 

 

代码示例2: 定义个匿名模块,依赖alpha模块

define([
"alpha"
],
function 
(alpha) {
    
return 
{
        
verb:
function
(){
            
return 
alpha.verb() + 2;
        
}
    
};
});

 

代码示例3: 使用JSON定义一个没有依赖的匿名模块。

define({
  
add:
function
(x, y){
    
return 
x + y;
  
}
});

 

代码示例4:定义一个兼容Modules/Wrappings模块化规范的匿名模块。

Modules/Wrappings是CommonJS Modules的浏览器端解决方案。AMD规范兼容Modules/Wrappings。

define(
function 
(require, exports, beta) {
    
exports.verb =
function
() {
        
return 
beta.verb();
        
//Or:
        
return 
require(
"beta"
).verb();
    
}
});

 

模块加载
require([module], callback)

AMD模块化规范中使用全局或局部的require函数实现加载一个或多个模块,所有模块加载完成之后的回调函数。

其中:

  • [module]:是一个数组,里面的成员就是要加载的模块;
  • callback:是模块加载完成之后的回调函数。

代码示例:加载一个math模块,然后调用方法 math.add(2, 3);

require([
'math'
],
function 
(math) {
 math.add(2, 3);
}); 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109248.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月10日 下午8:00
下一篇 2021年9月10日 下午8:00


相关推荐

  • SpringSecurity认证授权学习笔记

    SpringSecurity认证授权学习笔记

    2021年7月12日
    127
  • 关注互联网巨头和国产芯片的投资机会

    关注互联网巨头和国产芯片的投资机会

    2026年3月13日
    3
  • @GetMapping和@GetMapping(value=““)的区别纪要「建议收藏」

    问题:@GetMapping指定value和不指定value的区别是什么?背景:刚开始接触时的理解@GetMapping是不需要有value的,以为没有指定的value就无法访问对应的请求接口.后来经过实战和学习……今天有空来立项说明一下.答案: 1.首先要清楚@GetMapping的标准写法肯定是有对应的value指向的. 2.对于没有对应value指向的@GetMapping有且只有一个.在这种情况下当你的路径指向这个@GetMapping的上级路径时系统会默认找寻该.

    2022年4月7日
    164
  • Objective-C 内存管理之 _ARC

    Objective-C 内存管理之 _ARC

    2022年1月28日
    48
  • 假设检验-U检验、T检验、卡方检验、F检验

    假设检验-U检验、T检验、卡方检验、F检验一 假设检验假设检验是根据一定的假设条件 由样本推断总体的一种方法 假设检验的基本思想是小概率反证法思想 小概率思想认为小概率事件在一次试验中基本上不可能发生 在这个方法下 我们首先对总体作出一个假设 这个假设大概率会成立 如果在一次试验中 试验结果和原假设相背离 也就是小概率事件竟然发生了 那我们就有理由怀疑原假设的真实性 从而拒绝这一假设 二 假设检验的四种方法 1 有关平均值参

    2026年3月19日
    3
  • 前端模板引擎

    前端模板引擎一 为什么要使用模板引擎关于为什么要使用模板引擎 就我现在的项目而言 我还停留在进行发送 Ajax 请求到后台后 利用模板引擎拼接接受到的 JSON 字符串 展现到页面的地步 按照我老师的一句话表达 不用重复制造轮子 对于为什么要使用模板引擎的解释 我看过最好的回答来自知乎上 niko 的回答 模板最本质的作用是 变静为动 一切利用这方面的都是优势 不利于的都是劣势 要很好地实现 变静为动 的目的 有

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号