ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CMD规范

2021-10-26 18:02:01  阅读:221  来源: 互联网

标签:ju require CMD 规范 js mianji yuan


基本使用

CMD英文全称 Common Module Definition(通用模块定义);

NodeJS就是CMD规范的

CMD规范的实现:commonjs 、seajs、nodejs

我们以seajs举例实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="./js/sea.js"></script>
    <script>
        seajs.use("./js/main.js")
    </script>
</body>
</html>

上面是引入sea.js文件后向外暴露一个seajs的方法,内部的参数是引导文件路径

main.js文件

define(function (require, exprots, module) {
    var yuan = require("../outer/yuan.js");
    var ju = require("../outer/ju.js");
    alert(yuan.mianji(1))
    alert(ju.mianji(1,2))
  });
  

ju.js文件

define(function (require, exprots, module) {
  function mianji(a,b) {
    return a * b;
  }
  exprots.mianji = mianji
});

yuan.js文件

define(function (require, exprots, module) {
  function mianji(r) {
    return 3.14 * r * r;
  }
  exprots.mianji = mianji
});

 

 define这个外壳就是CMD规范的外壳,我们之前学习的NodeJS是可以不带外壳的CMD规范,所以就知道了require、exports、module都是从何而来的了,都是从CMD规范封装的方法中来的

 CMD和AMD规范的区别

AMD规范是中的require方法异步的,依赖模块是没有加载顺序之分的,所有的模块加载完毕后执行回调函数

require(['yuan', 'ju'], function (yuan, ju) {
    alert(yuan.mianji(1))
    alert(ju.mianji(1,2))
  })
 alert("0000")

 

 此时会发现0000先输出

require里面的语句是异步语句,把依赖项目都加载完毕后才执行回调函数,这个就是异步的由来

CMD规范中的require方法是同步的

define(function (require, exprots, module) {
    var yuan = require("./yuan");
    var ju = require("./ju");
    alert(yuan.mianji(1))
    alert(ju.mianji(1, 2))
    alert("0000")
  });
  

 

 目前主要使用cmd规范

标签:ju,require,CMD,规范,js,mianji,yuan
来源: https://www.cnblogs.com/keyeking/p/15466986.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有