当前位置:网站首页>1-5 NodeJS CommonJs规范
1-5 NodeJS CommonJs规范
2022-04-23 05:56:00 【画不完的饼】
CommonJs规范
node本身是基于CommonJs规范设计的,所以node是模块的组成
内置模块:node天生提供给js调取
三方模块:别人写好的,我们可以基于npm安装使用
自定义模块:自己创建一些模块
CommonJS模块化设计的思想(AMD/CMD/ES6 module)都是模块设计思想
1.CommonJS规定,每一个JS都是一个单独的模块(模块是私有的:里面涉及的值和函数、变量都是私有的,和其他JS文件中的内容是不冲突的)
2.CommonJS允许模块之中的方法互相的调用
B模块中想要调取A模块的方法
A模块需要导出
CommonJS给每个模块(每个js)中都设置了内置的变量、属性、方法
module:代表当前这个模块对象
module.exports:模块的这个“属性”是用来导出模块的属性和方法的
exports:是内置的一个“变量”,也是用来导出当前模块的属性和方法的,虽然和module.exports本就是一个东西,但是对应的值是同一个(module.exports = export)值都是对象
B模块需要导入
require:CommonJS提供的内置变量,用来导入模块的(其实导入就是module.exports暴露出来的东西),导入的值也是(object类型)的。
require是同步操作,它会将A模块自上而下执行,把exports对应的堆内存导入进来,所以接受到的结果是一个对象。
CommonJs特点
1.所有代码都运行在模块作用域内,不会污染全局作用域(每一个模块都是私有的,包括里面所有的东西也都是私有的,不会和其他模块产生干扰)
2.模块可以多次加载,但是指挥在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块在次运行,就必须清楚缓存。
3.模块加载的顺序,按照其在代码中出现的顺序
4.CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。
版权声明
本文为[画不完的饼]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_39162041/article/details/105122081
边栏推荐
猜你喜欢
随机推荐
若依框架从零开始
POJ-The Unique MST
SQLite3 encrypted version
.NET Standard详解
微信小程序之 js 时间戳/1000 转换 秒,六个小时后,一天后,本周五 选项计算时间
手动实现简单的Promise及其基础功能
提交本地仓库并同步码云仓库
ES6的新特性
Incremental update of client software
启用AHCI后无法启动系统
Modify registry values
Sdoi2009-hh Necklace
查漏补缺(八)
微信小程序之改变数组中某值,对象中某值的方法
查漏补缺(一)
2022ldu winter vacation training - program patch
HDU-Tunnel Warfare
说说ts的心里话
C# webpai 路由详解
The difference between VaR, let and Const









