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

另一种关于类的小例

前言

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

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.kler.cn/a/291264.html

相关文章:

  • openai swarm agent框架源码详解及应用案例实战
  • 【HTML+CSS+JS+VUE】web前端教程-2-HTML5介绍和基础骨架
  • CTF知识点总结(二)
  • 51单片机——定时器中断(重点)
  • STM32-笔记37-吸烟室管控系统项目
  • 如何配置Cursor的显示主题模式
  • 模拟经营研究(三):雷霆双雄之《奥比岛 》
  • 公共DNS大测评,哪个解析性能最好?
  • JAVA学习-练习试用Java实现“基本计算器”
  • ES可以干什么?安装ES
  • turbovnc 服务端、客户端安装
  • 河南建筑装饰工程设计专项资质办理机构怎样选
  • 【数据结构】二叉树顺序存储结构堆的应用以及解决TOP-K问题
  • 微信小程序 跳转
  • `Android NDK` `readelf` 在`Terminal`上的使用(配置`readelf`)
  • Behind the Code:与 Rakic 和 Todorovic 对话 OriginTrail 如何实现 AI 去中心化
  • python文件自动分类(3)
  • 【代码随想录|图论part03之后】
  • Kubernetes精讲之环境搭建
  • Qt基础类02-坐标类QPointF
  • ios动态创建控件及添加事件
  • 基于微信的热门景点推荐小程序的设计与实现(论文+源码)_kaic
  • MATLAB 仿真跳频扩频通信系统
  • Salt Function Flow:深度解析复杂网关编排的优势与实践
  • Java开发中的vo,dto,po
  • 基于 AT 固件测试 ESP32 设备作为 WiFi AP 模式创建 TCP Server 开启 UART-to-WiFi 透传模式的指令序列