31 # 模块的概念

简介: 31 # 模块的概念

模块化规范

  • commonjs 规范:node 中的模块化规范就是 commonjs 规范(node 自己实现的),CommonJS 模块输出的是一个值的拷贝
  • esmodule 规范(import export):ES6 模块输出的是值的引用
  • umd 规范(统一模块规范,如果浏览器不支持 commonjs requirejs,直接将变量放到 window 上)
  • amd 规范(requirejs):采用异步方式加载模块,推崇依赖前置、提前执行
  • cmd 规范(seajs,过时了):推崇依赖就近、延迟执行。

commonjs 规范

  • 可以把复杂的代码拆分成小的模块,方便管理代码和维护
  • 每个模块之间的内容都是相互独立的,互不影响(解决变量冲突的问题),解决方案:使用单例模式不能完全解决,可以使用自执行函数来解决

规范的定义:

  • 每个文件都是一个模块
  • 如果你希望模块中的变量被别人使用,可以使用 module.exports 导出这个变量
  • 如果另一个模块想使用这个模块导出的结果,需要使用 require 语法来引用(同步)

模块的分类

  • 核心模块、内置模块:不是自己写的,也不是安装来的,而是 node 中自己提供的,可以直接使用,比如:require("fs")
  • 第三方模块:别人写的模块,通过 npm install 安装过来的,不需要有路径,比如:require("commander")
  • 自定义模块:自己定义的模块就是自己写的模块,引用时需要增加路径(相对路径,绝对路径),比如:require("./6/kaimo-promise.js")
目录
相关文章
|
存储 前端开发 数据库
状态持久化:在应用中保留数据和用户体验的关键
在现代应用程序开发中,状态持久化是一个至关重要的概念。它使应用程序能够在不同会话之间保留数据,确保用户在退出应用程序后再次打开时能够恢复到之前的状态。本博客将深入研究状态持久化的核心概念、方法和最佳实践,以提高用户体验并确保数据的安全性。
349 0
|
人工智能 测试技术 开发者
最强开源背景去除模型​RMBG v1.4
RMBG v1.4是briaai公司最先进的背景去除模型,它可以将一系列类别和图像类型中有效地将前景与背景切分
1219 0
最强开源背景去除模型​RMBG v1.4
|
人工智能 监控 安全
什么是网络即服务 (NaaS)?
我们经常听到云计算领域中有IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务),但是你知道吗?在网络领域也有一种术语叫做NaaS(网络即服务),本文瑞哥就带大家揭开NaaS的神秘面纱,让我们直接开始!
4015 0
什么是网络即服务 (NaaS)?
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch 中的动态图与静态图:理解它们的区别及其应用场景
【8月更文第29天】深度学习框架中的计算图是构建和训练神经网络的基础。PyTorch 支持两种类型的计算图:动态图和静态图。本文旨在阐述这两种计算图的区别、各自的优缺点以及它们在不同场景下的应用。
2894 0
|
存储 Java 编译器
经验总结:源代码-目标代码的区别
源代码是由程序员用高级语言编写的可读文本文件,需编译成机器可执行的二进制目标代码。目标代码由编译器生成,包含机器指令,对机器可读但对人类不易理解。源代码便于修改,而目标代码需重新编译以反映更改。源代码不受系统限制,目标代码则特定于系统。此外,链接程序处理源文件间及库函数的引用,将目标文件连接成可执行文件。Java中的本地方法则允许调用非Java语言编写的代码,实现与底层系统的交互,提高程序性能或实现特定功能。
517 4
|
11月前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
存储 Java 编译器
心得经验总结:源代码、目标代码、可执行代码、本地代码的区别
心得经验总结:源代码、目标代码、可执行代码、本地代码的区别
569 0
|
Java Spring 容器
Java SpringBoot 中,动态执行 bean 对象中的方法
Java SpringBoot 中,动态执行 bean 对象中的方法
161 0
|
存储 缓存 监控
快速掌握Redis优化要点,告别性能瓶颈!
# Redis优化指南 了解如何提升Redis性能,从读写方式(整体与部分)、KV size、Key数量、读写峰值、命中率、过期策略、平均穿透加载时间、可运维性、安全性等方面着手。选择合适的读写策略,如只整体读写或部分读写变更,优化KV size避免过大或差异过大,合理管理Key数量,应对不同读写峰值,监控命中率并持续优化,设置智能过期策略,减少平均穿透加载时间,确保高可运维性并强化安全性。一起探索Redis的性能潜力!
2688 5
|
消息中间件 缓存 负载均衡
【Kafka】Kafka 消息的消费模式
【4月更文挑战第5天】【Kafka】Kafka 消息的消费模式