另一种关于类的小例

前言

我们还是以一段关于构造函数的代码作为开端,我们以之前银行家的小项目为背景

class Account {constructor(owner, currency, pin) {this.owner = owner;this.currency = currency;this.pin = pin;}
}const ITshare = new Account('ITshare', 'EUR', '21211');
console.log(ITshare);

在这里插入图片描述

● 我们可以设置一个欢迎语

class Account {constructor(owner, currency, pin) {this.owner = owner;this.currency = currency;this.pin = pin;this.locale = navigator.language;console.log(`欢迎来到你的账户,${owner}`);}
}const ITshare = new Account('ITshare', 'EUR', '21211');
console.log(ITshare);

在这里插入图片描述

● 但是如果现在我们需要一个存钱和取钱的数组,用于记录,该怎么去做呢?当然我们可以用传统的方法

class Account {constructor(owner, currency, pin) {this.owner = owner;this.currency = currency;this.pin = pin;this.movements = [];this.locale = navigator.language;console.log(`欢迎来到你的账户,${owner}`);}
}const ITshare = new Account('ITshare', 'EUR', '21211');
ITshare.movements.push(250);
ITshare.movements.push(-156);
console.log(ITshare);

在这里插入图片描述

● 上面未必显得有点不高级了,可以像下面这样的写

class Account {constructor(owner, currency, pin) {this.owner = owner;this.currency = currency;this.pin = pin;this.movements = [];this.locale = navigator.language;console.log(`欢迎来到你的账户,${owner}`);}deposit(val) {this.movements.push(val);}withraw(val) {this.deposit(-val);}
}const ITshare = new Account('ITshare', 'EUR', '21211');
ITshare.deposit(250);
ITshare.withraw(120);
console.log(ITshare);

在这里插入图片描述

上面的取钱和存钱的操作就属于公共接口,所有人在存钱或者取钱的时候都是调用同样的方法;

● 我们可以像之前那样实现一个贷款的样例

class Account {constructor(owner, currency, pin) {this.owner = owner;this.currency = currency;this.pin = pin;this.movements = [];this.locale = navigator.language;console.log(`欢迎来到你的账户,${owner}`);}deposit(val) {this.movements.push(val);}withraw(val) {this.deposit(-val);}approveLoan(val) {return true;}requestLoan(val) {if (this.approveLoan(val)) {this.deposit(val);console.log('恭喜你!贷款成功');}}
}const ITshare = new Account('ITshare', 'EUR', '21211');
ITshare.deposit(250);
ITshare.withraw(120);
ITshare.requestLoan(1000);
console.log(ITshare);

在这里插入图片描述

上面的方法中,approveLoan方法只有被requestLoan他才有效,所以在开发中,数据封装和数据隐私非常非常重要,后面的话我们的文章再分享学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/878348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频:Python深度学习量化交易策略、股价预测:LSTM、GRU深度门控循环神经网络|附代码数据...

全文链接:https://tecdat.cn/?p37539 分析师:Shuo Zhang 本文以上证综指近 22 年的日交易数据为样本,构建深度门控循环神经网络模型,从股价预测和制定交易策略两方面入手,量化循环神经网络在股票预测以及交易策略中的…

zabbix对接Grafana

1.grafana安装 Download Grafana | Grafana Labs sudo yum install -y https://dl.grafana.com/oss/release/grafana-11.1.4-1.x86_64.rpm 2.zabbix插件安装 Grafana 默认并没有 zabbix 数据源的支持,只有安装了zabbix插件,才可以在grafana中添加zabbi…

【Rust光年纪】探索Rust嵌入式开发利器:从硬件访问到USB绑定

Rust硬件访问库全面比较:选择最适合你的工具 前言 随着物联网和嵌入式系统的普及,对于树莓派等硬件设备的访问需求逐渐增加。在Rust语言领域,为了满足这一需求,出现了一系列针对树莓派和嵌入式设备的硬件访问库。本文将介绍其中…

Simulink代码生成:关系运算与逻辑运算

文章目录 1 引言2 模块使用实例2.1 关系运算2.2 关系运算 3 代码生成4 总结 1 引言 在Simulink中经常需要判断两个信号的大小关系、是否相等,或者判断布尔类型信号的与、或、非等。本文研究通过关系运算与逻辑运算模块实现上述需求。 2 模块使用实例 2.1 关系运算…

操作系统:实验一进程控制实验

一、实验目的 1、掌握进程的概念,理解进程和程序的区别。 2、认识和了解并发执行的实质。 3、学习使用系统调用fork()创建新的子进程方法,理解进程树的概念。 4、学习使用系统调用wait()或waitpid()实现父子进程同步。 5、学习使用getpid()和getppi…

CentOS全面停服,国产化提速,央国企信创即时通讯/协同门户如何选型?

01. CentOS停服带来安全新风险, 国产操作系统迎来新的发展机遇 2024年6月30日,CentOS 7版本全面停服,于2014年发布的开源类服务器操作系统——CentOS全系列版本生命周期画上了句号。国内大量基于CentOS开发和适配的服务器及平台&#xff0c…

Day 03

203. 移除链表元素 迭代(虚拟头节点) class Solution { public:ListNode* removeElements(ListNode* head, int val){ListNode* dummyHead new ListNode(-1, head);ListNode* prev dummyHead; ListNode* curr head;while (curr …

挂个人-CSDN Java优秀内容博主rundreamsFly抄袭

事件起因 今天点开自己的CSDN博客,发现给我推了一篇文章抄袭我自己昨天18点发的文章。 就是这篇,一字不差,博主昵称是:rundreamsFly,账号是rundreams。 抄袭者文章 发布于2024-8-26 19:37:41秒,比我发布…

CoMat——解决文本与图像之间的差异

概述 论文地址:https://arxiv.org/abs/2404.03653 在文本到图像生成领域,扩散模型近年来取得了巨大成功。然而,提高生成图像与文本提示之间的一致性仍然是一个挑战。 论文指出,扩散模型中文本条件利用不足是对齐的根本原因。论…

巧用scss实现一个通用的媒介查询代码

巧用scss实现一个通用的媒介查询代码 效果展示 实现代码 <template><div class"page-root"><div class"header"></div><div class"content"><div class"car-item" v-for"item in 9">…

【HarmonyOS 4.0】@ohos.router 页面路由

注册页面&#xff0c;在src/main/resources/base/profile/main_pages.json文件新增配置。 {"src": ["pages/Index","pages/AnimateTo"] }导入 router 模块 import router from ohos.router1. router.pushUrl 跳转到应用内的指定页面会将当前页面…

掌握SQL的“删除艺术”:如何使用DROP TABLE命令

掌握SQL的“删除艺术”&#xff1a;如何使用DROP TABLE命令 在数据库管理中&#xff0c;有时候我们需要彻底删除一个表&#xff0c;这可能是为了重新设计数据库结构&#xff0c;或者因为某些表不再需要。SQL 提供了 DROP TABLE 语句来实现这一功能。本文将详细介绍 DROP TABLE…

K8S持久化存储数据

环境&#xff1a; Ubuntu-1:192.168.114.110作为主 Ubuntu-2:192.168.114.120作为从1&#xff0c;node节点1 Ubuntu-3:192.168.114.130作为从2&#xff0c;node节点2 持久化volumeMounts pod里面&#xff1a;emptyDir和hostPath。存储在node&#xff0c;NFS...&#xff0c;Clo…

【系统架构设计师-2015年】综合知识-答案及详解

【第1~2题】 某航空公司机票销售系统有n个售票点&#xff0c;该系统为每个售票点创建一个进程Pi&#xff08;i1&#xff0c;2&#xff0c;…&#xff0c;n&#xff09;管理机票销售。假设Tj&#xff08;j1&#xff0c;2&#xff0c;…&#xff0c;m&#xff09;单元存放某日某…

时序预测 | 基于DLinear+PatchTST多变量时间序列预测模型(pytorch)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 DLinearPatchTST多变量时间序列 dlinear,patchtst python代码&#xff0c;pytorch架构 适合功率预测&#xff0c;风电光伏预测&#xff0c;负荷预测&#xff0c;流量预测&#xff0c;浓度预测&#xff0c;机械领域预…

Nginx简单的安全性配置

文章目录 引言I Nginx简单的安全性配置禁止特定的HTTP方法限制URL长度禁止某些用户代理限制请求速率连接限制禁止访问某些文件类型II 常见的安全规则防御CC攻击User-Agent过滤GET-URL过滤GET-参数过滤POST过滤(sql注入、xss攻击 )引言 Nginx本身并不具备复杂的防火墙规则定制…

笔记:应用Visual Studio Profiler识别和解决内存泄漏问题

一、目的&#xff1a;应用Visual Studio Profiler识别和解决内存泄漏问题 识别和解决内存泄漏问题是确保应用程序稳定性和性能的关键步骤。 二、实现 以下是如何使用 Visual Studio Profiler 识别和解决内存泄漏问题的详细步骤&#xff1a; 1. 启动内存分析 1. 打开项目&…

应用层(Web与HTTP)

目录 常见术语 1.HTTP概况 2.HTTP连接 非持久HTTP流程 响应时间模型 持久HTTP 3.HTTP报文 3.1HTTP请求报文 3.2HTTP响应报文 HTTP响应状态码 4.Cookies&#xff08;用户-服务器状态&#xff09; cookies&#xff1a;维护状态 Cookies的作用 5.Web缓冲&#xff08;…

2024.8.30 Python 最大连续1的个数,滑动窗口,排列组合,三数之和

1.最大连续1的个数 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1,0,0,0,1,1,1,1,0], K 2 输出&#xff1a;6 解释&#xff1a;[1,1,1,0,0,1,1…

《教育科学》

《教育科学》期刊简介 《教育科学》&#xff08;EDUCATION SCIENCE&#xff09;1985年创刊&#xff0c;是由辽宁省教育厅主管、辽宁师范大学主办的教育理论刊物&#xff0c;所属学科为教育学&#xff08;侧重社会科学&#xff09;&#xff0c;在国内外公开发行&#xff08;刊号…