另一种关于类的小例

news2024/9/22 7:30:48

前言

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

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.coloradmin.cn/o/2091103.html

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

相关文章

堆垛机及AGV能力计算

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是关于堆垛机和AGV(…

第六课,模运算进阶,计算机存储单位

一,模运算的进阶知识 先复习一下已知的模运算知识: ①符号是%,但作为模运算符号时应念作“模”而非“百分之”或“百分号” ②参与模运算的数必须是两个整数,其作用是计算余数 然后新学几个模运算知识: ③当被除数是…

IPv4和子网掩码

目录 IP地址: IP概念: 网络号与主机号: 网关与跨网通信: IP地址的分类: 子网掩码: 如何确定两个IP地址是否在同一网段; 练习: 补充: IP地址: IP概念&#xff1…

哪家宠物空气净化器能吸毛除臭?希喂、352真实测评分享

自从家里同时迎来了猫咪与狗狗,生活的色彩确实丰富了许多,但这份喜悦的背后,也有每天理都理不断的“盛况”。每当结束了一天的忙碌,满心期待着家的温馨与安宁,推开家门的那一刻,猫和狗先迎接我的反而是它们…

Python实战项目:天气数据爬取+数据可视化(完整代码)_python爬虫实战

一、选题的背景 随着人们对天气的关注逐渐增加,天气预报数据的获取与可视化成为了当今的热门话题,天气预报我们每天都会关注,天气情况会影响到我们日常的增减衣物、出行安排等。每天的气温、相对湿度、降水量以及风向风速是关注的焦点。通过…

聊一聊质量测试框架

目录 质量测试框架的概述: 质量测试框架相关术语: 质量测试框架的构成及特性: 质量测试参考模型: 质量的生存周期的QM: 测量结果的应用: 常见的质量测试框架有哪些? 质量测试框架在使用…

springboot启动很慢,加载xml时卡住 或者 {dataSource-1} inited卡住 或者 primary数据库配置错误,很久启动不起来

springboot启动很慢,加载xml时卡住 或者 {dataSource-1} inited卡住 或者 primary数据库配置错误,很久启动不起来 1.第一步先rebuild一下2.如果还是很慢,可能是你debug启动的同时加了很多断点,需要把断点去掉。3.如果还是不行&…

设计模式-结构型模式-享元模式

1.享元模式定义 摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,从而让我们能在有限的内存容量中载入更多对象; 1.1 享元模式优缺点 优点 极大减少内存中相似或相同对象数量,节约系统资源&#xff0c…

Ascend C算子开发(入门)—— 算子开发初体验

文章目录 Ascend C算子开发(入门)—— 算子开发初体验Host与Device核函数什么是核函数如何编写核函数? 核函数实现例子——Hello World完整核函数泛讲 Ascend C算子开发(入门)—— 算子开发初体验 Host与Device Host…

从零开始学cv-9:图像滤波

文章目录 前言一、简介:二、图像滤波实现:2.1 均值滤波:2.2 高斯滤波:2.3 中值滤波:2.4 锐化滤波: 前言 在信息化时代,图像已成为人们获取信息、沟通交流的重要载体。随着科技的飞速发展&#…

《高等代数》范德蒙德行列式的证明

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:1)利用数学归纳法证明范德蒙德行列式。 2)将范德蒙德行列式最后一列除了“1”以外都化为“0”,再按照最后一列展开。 3&#xff09…

Python编码系列—Python项目架构的艺术:最佳实践与实战应用

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

线段树解决区间合并类问题

如果只维持一段区间连续1的最长字串长度是无法被线段树维护的:所以可以增加信息来共同维护 1.维护三个信息:连续1的最长字串长度、连续1的最长前缀长度、连续1的最长后缀长度 2.如果一段区域连续1的长度小于区域的总长度: 3.如果一段区域连续…

力扣376-摆动序列(java详细题解)

题目链接:https://leetcode.cn/problems/wiggle-subsequence/ 前情提要: 因为本人最近都来刷贪心类的题目所以该题就默认用贪心方法来做。 贪心方法:局部最优推出全局最优。 如果一个题你觉得可以用局部最优推出全局最优,并且…

最新时光邮局系统,给未来写封信系统PHP源码美化版

源码介绍 最新时光邮局系统,给未来写封信系统PHP源码美化版视频教程。 给未来写封信开源源码,本源码支持用户给未来某个人发送一封信。前端采用MDUI框架后端对于定时发信采用screenphp的方式,未来将会增加其稳定性,寄出的信是可以在数据库查…

绝区零苹果电脑能玩吗,如何在Mac上玩绝区零?绝区零MacBook 下载安装保姆级教程

《绝区零》是一款由米哈游开发的都市动作冒险游戏,游戏的故事背景设定在一个名为「新艾利都」的现代化大都市中,玩家将扮演一对「绳匠」兄妹展开冒险。很多玩家都在问苹果电脑笔记本Mac怎么玩绝区零,今天就给大家介绍一下《绝区零》是一款什么…

信息打点-CDN绕过篇漏洞回链接口探针全网扫描反向邮件

知识点: 0、CDN知识-工作原理及阻碍 1、CDN配置-域名&区域&类型 2、CDN绕过-靠谱十余种技战法 3、CDN绑定-HOSTS绑定指向访问 CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和…

小程序列表滚动加载下一页数据功能实现指南

在前端小程序开发中,列表页是用户交互的核心部分之一。为了提高用户体验和页面响应速度,实现列表的滚动加载(也称为“无限滚动”或“懒加载”)功能显得尤为重要。本篇文章将详细介绍如何在小程序中实现这一功能,并提供…

基于vue框架的畅饮水站业务管理系统0wf4k(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:员工,会员,矿泉水,订单信息,派送任务,派送进度,评价记录,空桶回收,员工考勤,员工工资 开题报告内容 基于Vue框架的畅饮水站业务管理系统开题报告 一、研究背景与意义 随着健康意识的不断提升,直饮水、纯净水等健康饮水方式…

关于Seata的AT模式以及XA模式的理解

AT 模式 (最终一致性)的特点是性能较高,因为它只在第一阶段获取锁,在第一阶段提交后释放锁。相比之下,XA 模式(强一致性)需要在整个事务过程中占用数据库锁,因此性能相对较低。但是&…