星光闪耀有点酷 星光闪耀有点酷
首页
  • 随心随笔

    • 星耀集
    • 热点创作
  • 音乐

    • 尤克里里
  • VuePress
  • Markdown
  • VS Code
  • Node.js
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

星光闪耀

做最酷炫的自己
首页
  • 随心随笔

    • 星耀集
    • 热点创作
  • 音乐

    • 尤克里里
  • VuePress
  • Markdown
  • VS Code
  • Node.js
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • VuePress

  • Markdown

  • VS Code

  • Node.js

    • 准备工作
    • 常见问题
    • 基本知识
    • 模块介绍
      • 为什么要有模块?
      • CommonJS 模块规范
        • 通过require()方法,传入模块的标识,引入模块
        • 模块标识可以是小驼峰命名的字符串,或者是./或者../开头相对路径,或者是绝对路径
        • 每个模块存在一个module对象,代表模块本身
        • 每个模块都有独立的作用域
        • 通过上下文提供exports对象,用于导出当前模块的方法和变量 ,同时exports是module的一个属性
  • phpStudy

  • WordPress

  • Linux

  • GitHub

  • uni-app

  • 面试题

  • Office

  • Python

  • 技术
  • Node.js
星光闪耀
2023-01-28
目录

模块介绍

在大型项目中,我们往往会根据需求和功能,将程序拆分为不同的模块。一方面有利于多人协作开发,提高开发效率。另一方面,清晰明确的架构也有利于提升程序的可维护性。

随着JavaScript程序的规模越来越大,没有模块的问题越来越明显

  • 命名冲突
  • 无法定义依赖,加载过多无用脚本
  • 代码耦合度极高

# 为什么要有模块?

日常开发难免需要他人合作开发,按功能点划分好模块,往往能使代码更灵活,并且大大提升代码可维护性和可复用率。

  • 方便多人分工合作
  • 通过定义依赖,可避免加载过多无用脚本
  • 减少代码耦合度
  • 解决命名冲突问题
  • 模块复用,减少重复造轮子

# CommonJS 模块规范

# 通过require()方法,传入模块的标识,引入模块

var http = require('http')
1

# 模块标识可以是小驼峰命名的字符串,或者是./或者../开头相对路径,或者是绝对路径

var moduleA = require('./moduleA')
1

# 每个模块存在一个module对象,代表模块本身

console.log(module)
1

# 每个模块都有独立的作用域

console.log(a) //a is undefined
1

# 通过上下文提供exports对象,用于导出当前模块的方法和变量 ,同时exports是module的一个属性

module.exports.fn = function(){}
module.exports = function(){}
1
2

exports 是对module.exports的引用,直接改变这个引用的值是不会改变module.exports的值。

上次更新: 2023/01/29, 15:40:43
基本知识
phpStudy小皮面板redis重启数据丢失

← 基本知识 phpStudy小皮面板redis重启数据丢失→

最近更新
01
高效学习的方法
11-20
02
学习计划
11-13
03
Nginx配置SSL证书 curl (60) Peer's Certificate issuer is not recognized
05-10
更多文章>
Theme by Vdoing | Copyright © 2013-2024 星光闪耀有点酷 | MIT License
苏公网安备 32072402010152号 | 苏ICP备2022047659号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式