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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 《启示录-打造用户喜爱的产品》-第一部分

    今天下午读了《启示录-打造用户喜爱的产品》的第一部分,介绍软件开发中的人员职能,其实主要还是产品经理相关的,做了一部分笔记如下。其实平时读书也一直在思考,应该怎么读书,很多读过的书当时很受启发,但是过段时间就会淡忘了,模糊记得一些内容,但是又好像没有什么作用。之后读书读到有启发的地方还是记录一下,回头看看应该也还是有收获的。不知道大家都是怎么读书,有好方法的也欢迎交流下。优秀产品经理的七个特点1、

    2022年3月11日
    43
  • xgboost算法原理简介_量子优化算法

    xgboost算法原理简介_量子优化算法1、xgboost是什么全称:eXtremeGradientBoosting作者:陈天奇(华盛顿大学博士)基础:GBDT所属:boosting迭代型、树类算法。适用范围:分类、回归优点:速度快、效果好、能处理大规模数据、支持多种语言、支持自定义损失函数等等。缺点:发布时间短(2014),工业领域应用较少,待检验2、基础知识,GBDTxgboost

    2022年4月20日
    60
  • c语言优先级排序

    c语言优先级排序c语言运算优先级

    2022年6月15日
    41
  • Python入门教程完整版(懂中文就能学会)

    今天本宝宝给大家带来了干货,Python入门教程完整版,完整版啊!完整版!言归正传,我来给大家介绍一下这套教程,希望每个小伙伴都沉迷学习,无法自拔!本套教程学习时间15天1-3天内容:为Linux基础命令4-13天内容:为Python基础教程14-15天内容:为飞机大战项目演练第一阶段(1-3天):该阶段首先通过介绍不同领域的三种操作系统,操作系统的发展简史以及…

    2022年4月5日
    50
  • 学生成绩管理系统设计java_java学生成绩管理系统设计与实现

    学生成绩管理系统设计java_java学生成绩管理系统设计与实现本文实例为大家分享了java学生成绩管理系统的具体代码,供大家参考,具体内容如下/**@copyrightbyLzyRapxon2016/4/12.*@name:java学生成绩管理系统.*@功能:学生相关信息,录入,查询,统计,修改等….*@PS:图形界面的学生管理系统不要求就不做了.*/importjava.util.Scanner;importjava.lang.*;impo…

    2022年7月14日
    13
  • creating server tcp listening socket 127.0.0.1:6379: bind No error

    creating server tcp listening socket 127.0.0.1:6379: bind No errorwindow下启动redis服务报错:creatingservertcplisteningsocket127.0.0.1:6379:bindNoerror的解决方案如下按顺序输入如下命令就可以连接成功redis-cli.exeshutdownexitredis-server.exeredis.windows.conf参考连接:https://blog.csdn….

    2022年5月2日
    48

发表回复

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

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