当前位置: 首页 > news >正文

前端入门指南:前端模块有哪些格式?分别什么情况使用

前言

在当今的前端开发中,模块化是提升代码组织性和可维护性的关键手段。随着前端技术的发展,出现了多种模块化方案,每种方案都有其独特的优势和适用场景。本文将详细探讨常见的前端模块格式,包括全局变量、IIFE、CommonJS、AMD、ES6 模块、UMD 和 SystemJS,并分析它们在不同应用场景中的使用情况。

模块格式

1. 全局变量

早期的前端开发中,最常见的做法是将函数和变量定义在全局作用域中。

<script>function sayHello() {console.log('Hello, world!');}
</script>

使用场景

  • 这种方式常用于简单的网页脚本或不需要模块化的项目。
  • 适合快速原型开发或者学习阶段。

缺点

  • 全局变量污染:容易引起命名冲突,调试和维护复杂。
  • 可读性差:代码结构不清晰,难以追踪依赖关系。

2. Immediately Invoked Function Expression (IIFE)

为了避免全局变量污染,开发者引入了IIFE,这是一种立即执行的函数表达式。

(function() {function sayHello() {console.log('Hello, world!');}sayHello();
})();

使用场景

  • 适合中小型项目,或者需要封装功能以避免污染全局命名空间的情况下。

优点

  • 避免全局命名空间污染。
  • 代码封装性更好。

缺点

  • 模块化依然不够清晰,依赖关系管理复杂。

3. CommonJS

CommonJS是Node.js的模块标准,广泛应用于服务器端和一些构建工具中。

// math.js
module.exports.add = function(a, b) {return a + b;
};// app.js
const math = require('./math');
console.log(math.add(2, 3));

使用场景

  • 适用于Node.js环境下的开发。
  • 配合工具(如Browserify)可以在浏览器中使用。

优点

  • 明确的模块系统,易于管理依赖。
  • 广泛应用于Node.js社区。

缺点

  • 由于同步加载模块,不适合浏览器环境中的动态加载。

4. Asynchronous Module Definition (AMD)

AMD是专为浏览器设计的异步模块定义规范,RequireJS是其常见实现。

// math.js
define([], function() {return {add: function(a, b) {return a + b;}};
});// app.js
require(['./math'], function(math) {console.log(math.add(2, 3));
});

使用场景

  • 适合需要异步加载模块的浏览器环境。
  • 大型项目或需要动态加载模块的项目。

优点

  • 支持异步加载,提升性能。
  • 解决了CommonJS在浏览器中的局限性。

缺点

  • 语法复杂,学习曲线较陡。
  • 需要配置额外的工具(如RequireJS)。

5. UMD (Universal Module Definition)

UMD 是一种尝试同时兼容 CommonJS 和 AMD 的模块定义模式,适合跨平台的 JavaScript 库。

(function (root, factory) {if (typeof define === 'function' && define.amd) {// AMDdefine([], factory);} else if (typeof module === 'object' && module.exports) {// Node.js / CommonJSmodule.exports = factory();} else {// Browser globalroot.myLibrary = factory();}
}(this, function () {return {add: function(a, b) {return a + b;}};
}));

使用场景

  • 适用于需要发布跨平台使用的 JavaScript 库。
  • 需要支持在多种环境中运行的项目。

优点

  • 兼容性好,能够在不同的模块系统中使用。
  • 灵活性高,适应性强。

缺点

  • 实现复杂,代码冗长。
  • 对于特定环境可能性能不如专用模块系统。

6. ES6 模块

ES6模块(又称为ESM,ES Modules)是JavaScript语言标准中的模块系统。

// math.js
export function add(a, b) {return a + b;
}// app.js
import { add } from './math.js';
console.log(add(2, 3));

使用场景

  • 现代浏览器和工具链(如Webpack、Rollup)广泛支持。
  • 适合现代JavaScript项目。

优点

  • 原生支持,无需额外工具。
  • 静态分析,性能和优化更好。

缺点

  • 需要设置合适的构建工具以兼容旧浏览器。

7. SystemJS

SystemJS 是一个动态模块加载器,支持多种模块格式(包括 ES6 模块、AMD、CommonJS)。

// math.js
export function add(a, b) {return a + b;
}// 配置 SystemJS
System.config({baseURL: '/js'
});// 使用模块
System.import('math.js').then(function(module) {console.log(module.add(2, 3));
});

使用场景

  • 适合需要动态模块加载、跨环境的项目。
  • 适用于需要同时支持多种模块格式的大型项目。

优点

  • 支持多种模块格式,兼容性强。
  • 动态加载,灵活性高。

缺点

  • 配置复杂,学习曲线陡峭。
  • 性能可能相对较低。

总结

综上所述,选择合适的前端模块格式对于项目的开发和维护至关重要。对于小型项目或快速原型开发,可以采用全局变量或 IIFE;在 Node.js 环境中,CommonJS 是理想的选择;需要异步加载模块的浏览器环境则适合使用 AMD 或 SystemJS;现代前端项目应优先采用 ES6 模块并结合 Webpack 等打包工具;跨平台 JavaScript 库则可以考虑使用 UMD。

相关文章:

前端入门指南:前端模块有哪些格式?分别什么情况使用

前言 在当今的前端开发中&#xff0c;模块化是提升代码组织性和可维护性的关键手段。随着前端技术的发展&#xff0c;出现了多种模块化方案&#xff0c;每种方案都有其独特的优势和适用场景。本文将详细探讨常见的前端模块格式&#xff0c;包括全局变量、IIFE、CommonJS、AMD、…...

Vue3 常用指令解析:v-bind、v-if、v-for、v-show、v-model

Vue 是一个非常强大的前端框架&#xff0c;提供了许多常用指令来简化模板的使用。Vue 指令以 v- 开头&#xff0c;用于对 DOM 元素和组件的行为进行控制。本文将介绍 Vue 中常见的五个指令&#xff1a;v-bind、v-if、v-for、v-show 和 v-model&#xff0c;并通过实例代码来演示…...

如何查看ubuntu服务器的ssh服务是否可用

你可以通过以下几种方法检查 Ubuntu 服务器上的 SSH 服务是否可用&#xff1a; 1. 使用 systemctl 检查 SSH 服务状态 首先&#xff0c;检查 SSH 服务是否正在运行&#xff1a; sudo systemctl status ssh如果 SSH 服务正在运行&#xff0c;你会看到类似以下的输出&#xff…...

redis面试复习

1.redis是单线程还是多线程 无论什么版本工作线程就是是一个&#xff0c;6.x高版本出现了IO多线程 单线程满足redis的串行原子&#xff0c;只不过IO多线程后&#xff0c;把输入/输出放到更多的线程里区并行&#xff0c;好处&#xff1a; 1.执行的时间更短&#xff0c;更快&a…...

【人工智能基础04】线性模型

文章目录 一. 基本知识1. 线性回归1.1. 基本形式1.2. 线性回归 2. 优化方法&#xff1a;梯度下降法2.1. 梯度下降法的直观意义2.2. 随机梯度下降法 3. 分类问题3.1. 二分类&#xff1a;逻辑回归-sigmoid函数3.2. 多分类问题--softmax函数 4. 岭回归与套索回归4.1. 基础概念什么…...

使用YOLO系列txt目标检测标签的滑窗切割:批量处理图像和标签的实用工具

使用YOLO系列txt目标检测标签的滑窗切割&#xff1a;批量处理图像和标签的实用工具 使用YOLO的TXT目标检测标签的滑窗切割&#xff1a;批量处理图像和标签的实用工具背景1. 代码概述2. 滑窗切割算法原理滑窗切割步骤&#xff1a;示例&#xff1a; 3. **代码实现**1. **加载标签…...

《装甲车内气体检测“神器”:上海松柏 K-5S 电化学传感器模组详解》

《装甲车内气体检测“神器”:上海松柏 K-5S 电化学传感器模组详解》 一、引言二、K-5S 电化学传感器模组概述&#xff08;一&#xff09;产品简介&#xff08;二&#xff09;产品特点&#xff08;三&#xff09;产品适用场景 三、电化学传感器原理及优点&#xff08;一&#xf…...

【笔记】文明、现代化与价值投资

文章目录 价值投资与理性思考资管行业特点及对从业人员的道德底线要求价值投资长期来看&#xff0c;各项资产的走势投资与投机 对文明的认知对文明的计量方式狩猎文明或1.0文明农业畜牧文明或2.0文明农业文明的天花板及三次冲顶农业文明中的思想革命和制度创新 科技文明或3.0文…...

排序学习整理(1)

1.排序的概念及运用 1.1概念 排序&#xff1a;所谓排序&#xff0c;就是使⼀串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作&#xff0c;以便更容易查找、组织或分析数据。 1.2运用 购物筛选排序 院校排名 1.3常见排序算法 2.实…...

提升分布式系统响应速度:分布式系统远程调用性能提升之道

目录 一、远程调用直接案例分析 二、并行调用 &#xff08;一&#xff09;核心思想 &#xff08;二&#xff09;并行调用的实现方式 1. 基本思路 2. 代码示例 3. 关键点说明 4.线程池配置建议 三、数据异构 &#xff08;一&#xff09;场景重提 &#xff08;二&…...

通过MinIO+h2non/imaginary 搭建自己的阿里云OSS

安装MinIO Docker部署MinIO对象存储服务 图片访问地址&#xff1a;http://192.168.153.138:9000/public/su7_1.jpg 安装h2non/imaginary Docker部署h2non/imaginary 处理图片地址&#xff1a;http://192.168.153.138:7000/resize?urlhttp://192.168.153.138:9000/public/su…...

.NET 9 AOT的突破 - 支持老旧Win7与XP环境

引言 随着技术的不断进步&#xff0c;微软的.NET 框架在每次迭代中都带来了令人惊喜的新特性。在.NET 9 版本中&#xff0c;一个特别引人注目的亮点是 AOT&#xff08; Ahead-of-Time&#xff09;支持&#xff0c;它允许开发人员将应用程序在编译阶段就优化为能够在老旧的 Win…...

iOS与Windows间传文件

想用数据线从 windows 手提电脑传文件入 iPhone&#xff0c;有点迂回。 参考 [1]&#xff0c;要在 windows 装 Apple Devices。装完、打开、插线之后会检测到手机&#xff0c;界面&#xff1a; 点左侧栏「文件」&#xff0c;不是就直接可以传&#xff0c;而是要通过某个应用传…...

ospf协议(动态路由协议)

ospf基本概念 定义 OSPF 是典型的链路状态路由协议&#xff0c;是目前业内使用非常广泛的 IGP 协议之一。 目前针对 IPv4 协议使用的是 OSPF Version 2 &#xff08; RFC2328 &#xff09;&#xff1b;针对 IPv6 协议使用 OSPF Version 3 &#xff08; RFC2740 &#xff09;。…...

直击高频编程考点:聚焦新版综合编程能力考查汇总

目录 一、业务性编程和广度能力考查 &#xff08;一&#xff09;基本定义 &#xff08;二&#xff09;必要性分析 二、高频考查样题&#xff08;编程扩展问法&#xff09; 考题1: 用java 代码实现一个死锁用例&#xff0c;说说怎么解决死锁问题&#xff1f;&#xff08;高…...

爬虫框架快速入门——Scrapy

适用人群&#xff1a;零基础、对网络爬虫有兴趣但不知道从何开始的小白。 什么是 Scrapy&#xff1f; Scrapy 是一个基于 Python 的网络爬虫框架&#xff0c;它能帮助你快速爬取网站上的数据&#xff0c;并将数据保存到文件或数据库中。 特点&#xff1a; 高效&#xff1a;支…...

Springfox、Swagger 和 Springdoc

Springfox、Swagger 和 Springdoc 是用于在 Spring Boot 项目中生成 API 文档的工具&#xff0c;但它们之间有显著的区别和演进关系&#xff1a; 1. Swagger 简介 Swagger 是一个开源项目&#xff0c;旨在为 RESTful APIs 提供交互式文档。最早由 SmartBear 开发&#xff0c;…...

Css、less和Sass(SCSS)的区别详解

文章目录 Css、less和Sass&#xff08;SCSS&#xff09;的区别详解一、引言二、CSS 简介1.1、CSS 示例 三、Less 简介2.1、Less 特性2.2、Less 示例 四、Sass&#xff08;SCSS&#xff09;简介3.1、Sass 特性3.2、SCSS 示例 五、总结 Css、less和Sass&#xff08;SCSS&#xff…...

新能源汽车充电基础设施短板问题多,如何实现高效、综合、智能化管理?

随着城市经济的发展&#xff0c;人民生活水平的提升&#xff0c;新能源汽车保有量快速增长&#xff0c;而日益增长的新能源汽车需求与充电基础设施建设不平衡的矛盾日益突出。由于停车泊位充电基础设施总量不足、布局待优化、利用效率低、建设运营存在短板问题等原因&#xff0…...

DBA面试题-1

面临失业&#xff0c;整理一下面试题&#xff0c;找下家继续搬砖 主要参考&#xff1a;https://www.csdn.net/?spm1001.2101.3001.4476 略有修改 一、mysql有哪些数据类型 1&#xff0c; 整形 tinyint,smallint,medumint,int,bigint&#xff1b;分别占用1字节、2字节、3字节…...

LAN,WAN,VLAN,WLAN,VPN了解笔记

局域网LAN---公司的内部网络就是局域网LAN。 提供有线连接的接口允许局域网内的设备&#xff08;如台式电脑、网络打印机、网络存储设备等&#xff09;通过以太网线连接到路由器并与其他局域网设备进行通信实现设备之间的数据传输和资源共享一种私有的网络相对其他网络传输速度…...

1.2 算法和算法评价

1.2.1 算法的基本概念 算法&#xff1a;对特定问题求解步骤的一种描述&#xff0c;它是指令的有限序列&#xff0c;其中的每条指令表示一个或多个操作。 算法的五个重要特性 “好”的算法的五个目标 1.2.2 算法效率的度量 一、时间复杂度 算法的时间复杂度是指一个算法每行…...

各大常见编程语言应用领域

不同编程语言因其特性和设计目标而适用于不同的应用领域。以下是一些常见编程语言及其主要应用领域&#xff1a; 1. Python 数据科学与人工智能&#xff1a;Python 在数据分析、机器学习、深度学习等领域广泛使用&#xff0c;因其丰富的库&#xff08;如 NumPy、Pandas、Tens…...

【FFT】数据点数是否一定为2的n次方?不补零会如何处理?

一般来说&#xff0c;FFT的数据点个数为以2为基数的整数次方&#xff08;采用以2为基的FFT算法&#xff0c;可以提升运算性能&#xff09;&#xff0c;但是并没有要求FFT的数据点个数一定为2的n次方。 因此针对数据点数不是以2为基数的整数次方&#xff0c;有两种处理方法&…...

shell脚本小练习#003:查找并拷贝目录

实例1&#xff1a; # 从当前执行脚本的路径位置开始向上搜索一个名为sourceProject目录名 # 并将这个文件目录的路径名称打印出来#!/bin/bashfunction find_dir() {local current_dir$PWDwhile [[ $current_dir ! "/" ]]; doif [[ -d "${current_dir}/sourcePr…...

frp内网穿透

目录 1&#xff0c;准备公网服务器 2&#xff0c;下载安装frp服务端 3&#xff0c;服务端安装 2&#xff09;编辑服务端配置文件fprs.toml 3&#xff09;配置启动服务 4&#xff09;启动服务 5 &#xff09;设置开机启动服务 6&#xff09;查看服务启动状态 3&#xff0c…...

Android电视项目焦点跨层级流转

1. 背景 在智家电视项目中&#xff0c;主要操作方式不是触摸&#xff0c;而是遥控器&#xff0c;通过Focus进行移动&#xff0c;确定点击进行的交互&#xff0c;所以在电视项目中焦点、选中、确定、返回这几个交互比较重要。由于电视屏比较大&#xff0c;在一些复杂页面中会存…...

时频转换 | Matlab基于S变换S-transform一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式基本介绍 时频转换 | Matlab基于S变换S-transform一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x =...

转载 为nautilus安装rabbitvcs

# 添加 rabbitvcs 的 ppa 源 sudo add-apt-repository ppa:rabbitvcs/ppa sudo apt update # 安装 rabbitvcs sudo apt install rabbitvcs-cli rabbitvcs-core rabbitvcs-gedit rabbitvcs-nautilus # 注销后重新登录&#xff0c;右键即可使用 # 解决 RabbitVCS 无法自动保存…...

OpenCV 模板匹配全解析:从单模板到多模板的实战指南

简介&#xff1a;本文深入探讨 OpenCV 中的模板匹配技术。详细介绍构建输入图像与模板图像的步骤&#xff0c;包括读取、截取、滤波与存储等操作。剖析 cv2.matchTemplate 语法及其参数含义&#xff0c;阐述不同匹配方法下结果值的意义。同时讲解 cv2.minMaxLoc 语法&#xff0…...

手机控制载货汽车一键启动无钥匙进入广泛应用

移动管家载货汽车一键启动无钥匙进入手机控车系统‌&#xff0c; 该系统广泛应用于物流运输、工程作业等货车场景&#xff0c;为车主提供了高效、便捷的启动和熄火解决方案&#xff0c;体现了科技进步对物流行业的积极影响‌ 核心功能‌&#xff1a;简化启动流程&#xff0c;提…...

Springboot——SseEmitter流式输出

文章目录 前言SseEmitter 简介测试demo注意点异常一 ResponseBodyEmitter is already set complete 前言 最近做AI类的开发&#xff0c;看到各大AI模型的输出方式都是采取的一种EventStream的方式实现。 不是通常的等接口处理完成后&#xff0c;一次性返回。 而是片段式的处理…...

【人工智能数学基础篇】线性代数基础学习:深入解读矩阵及其运算

矩阵及其运算&#xff1a;人工智能入门数学基础的深入解读 引言 线性代数是人工智能&#xff08;AI&#xff09;和机器学习的数学基础&#xff0c;而矩阵作为其核心概念之一&#xff0c;承担着数据表示、变换和运算的重任。矩阵不仅在数据科学中广泛应用&#xff0c;更是神经…...

idea 自动导包,并且禁止自动导 *(java.io.*)

自动导包配置 进入 idea 设置&#xff0c;可以按下图所示寻找位置&#xff0c;也可以直接输入 auto import 快速定位到配置。 Add unambiguous imports on the fly&#xff1a;自动帮我们优化导入的包Optimize imports on the fly&#xff1a;自动去掉一些没有用到的包 禁止导…...

奇怪的编码2

1.当铺密码 当铺密码的标志是“田由中人工大王夫井羊” 口 0 田 0 由 1 中 2 人 3 工 4 大 5 王 6 夫 7 井 8 羊 9 解密脚本&#xff1a; s 田由中人工大王夫井羊 codeinput("请输入当铺密码&#xff1a;") code code.split(" ") w for i in code:k…...

AI服务器从HBM到CXL的技术变革

AI服务器从HBM到CXL变革 本文探讨了AI产业的新范式&#xff0c;特别是服务器变革。传统服务器价格通常在1万美金以内&#xff0c;而搭载8张H100算力卡的DGX H100AI服务器价值高达40万美金(约300万人民币)。这一变化将对AI产业产生深远影响。 自然语言和图形处理依赖大量存储器…...

将自定义 AWS S3 快照存储库连接到 Elastic Cloud

作者&#xff1a;来自 Elastic Annie Hansen, Stef Nestor 在本博客中&#xff0c;我们将介绍如何通过 Elasticsearch 的快照将我们已提交的集群数据备份到 AWS S3 存储桶中。在 Elastic Cloud&#xff08;企业版&#xff09;中&#xff0c;Elastic 在其 found-snapshots 存储…...

Java 多线程编程核心要点全解析:深度探秘关键方法与同步机制

1.Thread 类中的start() 和 run() 方法有什么区别&#xff1f; 在Java编程语言中&#xff0c;Thread 类的 start() 和 run() 方法有重要的区别&#xff1a; start() 方法&#xff1a; 当你调用 start() 方法时&#xff0c;它会启动一个新的线程&#xff0c;并且这个新线程会…...

个人博客接入github issue风格的评论,utteranc,gitment

在做个人博客的时候&#xff0c;如果你需要评论功能&#xff0c;但是又不想构建用户体系和评论模块&#xff0c;那么可以直接使用github的issue提供的接口&#xff0c;对应的开源项目有utteranc和gitment&#xff0c;尤其是前者。 它们的原理是一样的&#xff1a;在博客文章下…...

搞个项目之-esp32-cam ov2640模组搭建图像视频项目

开发版的介绍&#xff1a; 1、开发板使用的是&#xff1a;ESP32-CAM 2、摄像头模组&#xff1a;OV2640 3、烧录底座&#xff1a;ESP32-CAM开发板烧录座 4、mirco usb线&#xff0c;四线30cm 5、开发版的原理图像 项目前期的准备工作 一、安装arduino arduino官网地址地址…...

【FPGA开发】Vivado自定义封装IP核,绑定总线

支持单个文件的封装、整个工程的封装&#xff0c;这里用单个文件举例。 在文件工程目录下&#xff0c;自建一个文件夹&#xff0c;里面放上需要封装的verilog文件。 选择第三个&#xff0c;指定路径封装&#xff0c;找到文件所在目录 取个名&#xff0c;选择封装IP的路径 会…...

Leetcode51:N 皇后

题目描述&#xff1a; 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问…...

C#面向对象之访问限制,类基础,继承

文章目录 1 访问限制1.1 简介 2 类基础讲解2.1 类定义2.2 构造函数2.2.1 构造函数2.2.2 静态构造函数2.2.3 初始化顺序2.2.4 对象初始化器 2.3 析构函数2.4 类的静态成员2.5 匿名对象2.5.1 定义2.5.2 匿名对象的创建 3 继承3.1 基类和派生类3.2 基类初始化3.3 Partial类3.3.1 定…...

科研小白成长记41——享受大起大落

一直内心对自己的定位是喜欢安安静静生活的人&#xff0c;但是朋友提醒我我的生活一直都是出于各种冒险之中&#xff0c;从GAP申博&#xff0c;到GAP找工作&#xff0c;都不是一个乐于安于现状的人会做出来的。仔细想想不无道理&#xff0c;既然如此&#xff0c;那就如享受安静…...

正则表达式笔记

一、基本正则 常见元字符 元字符说明^以某个字符开头$以某个字符结尾.匹配任意单字符*对前一项进行0次或者多次重复匹配{m,n}将前一项字符重复m-n次&#xff0c;{m,},{,n},{m&#xff0c;n}[]对方括号内的单字符进行匹配[^]不匹配方括号内的单字符^[]匹配以某个字符开头的行(…...

解决本地运行SuperPoint_SLAM报错ERROR: flag ‘flagfile‘ was defined more than once

解决本地运行SuperPoint_SLAM报错ERROR: flag flagfile was defined more than once 起因使用LD_DEBUG排查链接过程用ldd查看各自链接的库解决办法问题解决 起因 在之前本地编译了opencv-3.4.2&#xff0c;当时因为contrib模块需要gflags&#xff0c;重新下载了一个gflags在本…...

springboot信息化在线教学平台的设计与实现(代码+数据库+LW)

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了信息化在线教学平台的开发全过程。通过分析信息化在线教学平台管理的不足&#xff0c;创建了一个计算机管理信息化在线教学平台的方案。文章介绍了信息化在线教…...

maxun爬虫工具docker搭建

思路来源开源无代码网络数据提取平台Maxun 先把代码克隆到本地&#xff08;只有第一次需要&#xff09; git clone https://github.com/getmaxun/maxun.git 转到maxun目录 cd maxun 启动容器 docker-compose --env-file .env up -d 成功启动六个容器 网址 http://local…...

高效 Python Web 开发:FastAPI 入门与实践

高效 Python Web 开发&#xff1a;FastAPI 入门与实践 目录 ✨ 1. 安装与环境配置 &#x1f4e6; 安装 FastAPI 和 Uvicorn&#x1f5c2;️ 项目目录结构和初始化&#x1f680; 创建一个简单的 FastAPI 项目 &#x1f6e0;️ 2. FastAPI 路由与请求处理 &#x1f6e3;️ 基本…...

C++中的函数重载

函数重载是指在同一个作用域&#xff08;通常是一个类或者一个命名空间&#xff09;内&#xff0c;可以有多个同名函数&#xff0c;但是这些同名函数的参数列表&#xff08;参数的个数、类型或者顺序&#xff09;不同。当调用这个函数名时&#xff0c;编译器会根据传入的实际参…...