基于Javascript的封装、方法重载、构造方法

ops/2025/2/6 7:59:22/

封装

封装是面向对象编程中的一个重要特性,指的是将对象的状态(属性)和行为(方法)绑定在一起,并隐藏对象的实现细节,只暴露必要的接口。JavaScript通过类(class)和对象字面量(object literal)来实现封装。

class Person {// 构造方法constructor(name, age) {this._name = name;  // 私有属性this._age = age;    // 私有属性}// 公开方法getName() {return this._name;}setName(name) {this._name = name;}getAge() {return this._age;}setAge(age) {this._age = age;}
}const person = new Person('Alice', 30);
console.log(person.getName()); // 输出: Alice
person.setAge(31);
console.log(person.getAge()); // 输出: 31

方法重载

JavaScript 不像一些其他语言(如 Java)那样支持直接的方法重载。方法重载通常是指同一个方法名可以有不同的参数类型和数量判断。在 JavaScript 中,通常通过检查函数参数来模拟重载的效果。

function greet(name, age) {if (arguments.length === 1) {console.log(`Hello, ${name}`);} else if (arguments.length === 2) {console.log(`Hello, ${name}, age ${age}`);} else {console.log("Hello, unknown");}
}greet("Alice"); // Hello, Alice
greet("Alice", 30); // Hello, Alice, age 30

构造方法

构造方法是用来创建和初始化对象的特殊方法。在 JavaScript 中,构造方法通常是类中的 constructor 方法。构造方法会在实例化对象时自动调用。

class Person {// 构造方法constructor(name, age) {this.name = name;this.age = age;}
}const person = new Person('panda', 25);
console.log(person.name); // 输出: panda
console.log(person.age); // 输出: 25

总结

  1. 封装通过类和方法隐藏对象的内部实现。
  2. 方法重载可以通过检查参数类型和数量来实现。
  3. 构造方法用于初始化对象的属性。
  4. 构造代码块可以在构造方法内用代码块来实现初始化逻辑。

更多资源

Class 的基本语法 - ECMAScript 6入门


http://www.ppmy.cn/ops/156094.html

相关文章

深度学习篇---深度学习中的超参数张量转换模型训练

文章目录 前言第一部分:深度学习中的超参数1. 学习率(Learning Rate)定义重要性常见设置 2. 批处理大小(Batch Size)定义重要性常见设置 3. 迭代次数(Number of Epochs)定义重要性常见设置 4. 优…

.net的一些知识点

1.public,protected,private的区别 从访问权限来说是 public>protecd>private 翻译成汉字:公有的>受保护的>私有的 但是在拿那种旧版本(2017及之前)的vs创建class的时候,这个类是没有修饰符的。现在vs2022版本创建带了默认修饰符&#x…

matlab实现了一个多视角受限核机算法,结合了多个视角的数据进行二分类任务

function [pre , score] Mv_Lap_RKM(train , test , label , gamma_list, eta , lammda , sita ) %MV_RKM 多视角 受限核机 % 解决二分类问题,label为-1或1 % eta正则项超参 % lammda隐藏层超参 %Multi-View Least Squares Support Vector Machines Classifi…

11.kafka开启jmx

方式一: 1.进入/opt/kafka_2.13-3.3.2/bin目录 命令: cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 ~]# cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# pwd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# 2.备份kafka-run-class.sh 命令: cp kafka-run-class.sh …

大模型RAG优化方案_融合bm25和语义检索

1. 写在前面 检索增强生成 (Retrieval-Augmented Generation, RAG) 是一种将检索 (Retrieval) 和生成 (Generation) 相结合的技术,它利用检索到的相关信息来增强大型语言模型 (LLM) 的生成能力。RAG 系统通常包含两个关键组件: 检索器 (Retriever):从知识库中检索与输入查询…

【玩转 Postman 接口测试与开发2_012】第十章:用 Postman 监控 API 接口

《API Testing and Development with Postman》最新第二版封面 文章目录 第十章 用 Postman 监控 API 接口1 为何要使用监控工具2 搭建一个简易的接口监视器3 设置推送邮箱4 监控失败后的重试次数设置5 超时设置6 重定向设置7 启用 SSL 验证8 监视器测试用例的添加9 监视器运行…

Linux网络 | 网络计算器客户端实现与Json的安装以及使用

前言:本节讲述序列化和反序列化的相关内容。 这节的内容是博主前一篇博客的续章, 里面用到了很多知识点都是前一篇文章的。 友友们如果要学习序列化反序列化, 直接看本篇文章是看不懂的, 请看前一篇文章:linux网络 | 序…

自制虚拟机(C/C++)(三、做成标准GUI Windows软件,扩展指令集,直接支持img软盘)

开源地址:VMwork 要使终端不弹出&#xff0c; #pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") 还要实现jmp near 0x01类似的 本次的main.cpp #include <graphics.h> #include <conio.h> #include <windows.h> #includ…