JavaScript 类的封装操作示例详解

yizhihongxing

JavaScript类的封装操作示例详解

类是现代 JavaScript 开发中最常见的封装形式之一,通过类的封装可以将相关代码组织在一起,实现更好的封装和抽象。本篇攻略将介绍 JavaScript 类的封装操作,并提供两个示例供参考。

定义一个类

定义一个类的基础语法与 C++、Java 等语言类似,通过 class 关键字加上类的名称定义一个类,类的主体部分则由一对大括号组成。

class Person {
  // 类的属性
  name;
  age;

  // 类的方法
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  sayHello() {
    console.log(`Hello, my name is ${this.name}, and I am ${this.age} years old`);
  }
}

上述代码定义了一个 Person 类,该类有两个属性 nameage 以及一个方法 sayHello。其中 constructor 方法是类的构造函数,用于初始化对象的属性。

实例化对象

类是一个模板,通过该模板可以创建出多个实例对象。实例化对象时,使用 new 关键字加上类的名称即可。

const person = new Person('Tom', 18);

person 实例对象拥有类的属性和方法,可以使用 .name.age 访问对象的属性,使用 .sayHello() 调用对象的方法。

类的继承

JavaScript 类也支持继承操作,通过 extends 关键字来实现。

class Student extends Person {
  id;

  constructor(name, age, id) {
    // 调用父类的构造函数
    super(name, age);
    this.id = id;
  }

  study() {
    console.log(`${this.name} is studying.`);
  }
}

上述代码定义了一个 Student 类,该类继承自 Person 类,具有类的属性 nameageid,以及类的方法 constructorstudy。在 constructor 方法中使用 super 关键字调用父类的构造函数,以初始化 nameage 属性。

示例一:封装队列类

下面将给出一个封装队列的示例。

class Queue {
  data = [];

  // 入队操作
  enqueue(item) {
    this.data.push(item);
  }

  // 出队操作
  dequeue() {
    return this.data.shift();
  }

  // 判断队列是否为空
  isEmpty() {
    return this.data.length === 0;
  }
}

上述代码定义了一个 Queue 类,该类有一个属性 data、三个方法 enqueuedequeueisEmptyenqueue 方法实现入队操作,将一个元素加入队列末尾;dequeue 方法实现出队操作,将队列头部元素弹出并返回;isEmpty 方法返回队列是否为空。

使用示例:

const queue = new Queue();
queue.enqueue('A');
queue.enqueue('B');
queue.enqueue('C');

console.log(queue.isEmpty()); // 输出 false
console.log(queue.dequeue()); // 输出 A
console.log(queue.dequeue()); // 输出 B
console.log(queue.dequeue()); // 输出 C
console.log(queue.isEmpty()); // 输出 true

示例二:封装日期类

下面将给出一个封装日期类的示例。

class MyDate {
  year;
  month;
  day;

  constructor(year, month, day) {
    this.year = year;
    this.month = month;
    this.day = day;
  }

  // 将日期格式化为字符串
  toString() {
    return `${this.year}-${this.month}-${this.day}`;
  }

  // 获取该日期所在的年份
  getYear() {
    return this.year;
  }

  // 获取该日期所在的月份
  getMonth() {
    return this.month;
  }

  // 获取该日期所在的日份
  getDay() {
    return this.day;
  }

  // 判断当前日期是否是闰年
  isLeapYear() {
    return (this.year % 4 === 0 && this.year % 100 !== 0) || this.year % 400 === 0;
  }
}

上述代码定义了一个 MyDate 类,该类有三个属性 yearmonthday,以及四个方法 constructortoStringgetYearisLeapYear。其中 constructor 方法用于初始化日期的年、月、日;toString 方法用于将日期格式化为字符串;getYeargetMonthgetDay 三个方法分别返回日期的年、月、日;isLeapYear 方法用于判断当前日期所在的年份是否是闰年。

使用示例:

const date = new MyDate(2021, 9, 31);
console.log(date.toString()); // 输出 2021-9-31
console.log(date.getYear()); // 输出 2021
console.log(date.getMonth()); // 输出 9
console.log(date.getDay()); // 输出 31
console.log(date.isLeapYear()); // 输出 false

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 类的封装操作示例详解 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • 浅谈JavaScript的闭包函数

    下面我将为您详细讲解“浅谈JavaScript的闭包函数”的完整攻略。 什么是闭包函数? 闭包是指函数可以访问其词法作用域之外的变量的能力。换句话说,闭包是可以访问函数定义时所处的外部上下文中的变量的函数。 一个闭包函数通常由两部分组成,其中包括: 外围函数:定义了一个内部函数和一个或多个在内部函数中引用的变量; 内部函数:一个对外围函数中变量的引用,形成闭…

    JavaScript 2023年5月27日
    00
  • 使用Microsoft Ajax Minifier减小JavaScript文件大小的方法

    使用 Microsoft Ajax Minifier 可以对 JavaScript 文件进行压缩,进而减小文件大小,加快网站的加载速度。下面是使用 Microsoft Ajax Minifier 减小 JavaScript 文件大小的方法: 步骤一:安装 Microsoft Ajax Minifier 去微软官网下载最新版的 Microsoft Ajax M…

    JavaScript 2023年5月27日
    00
  • 详解Three.js 场景中如何彻底删除模型和性能优化

    针对“详解Three.js场景中如何彻底删除模型和性能优化”的完整攻略,以下是详细的讲解。 第一部分:如何彻底删除模型 在Three.js场景中,我们创建了许多的对象,例如模型、灯光、相机等。如果某些模型不再需要使用了,就应该将这些模型从场景中彻底删除,以释放内存并提高性能 1.1 单个模型的删除 要删除单个模型,需要使用以下代码: scene.remove…

    JavaScript 2023年6月10日
    00
  • Ajax异步请求技术实例讲解

    Ajax异步请求技术实例讲解 Ajax是一种在不重新加载网页的情况下,能够实现与服务器进行数据交互的技术,它可以帮助我们通过JavaScript向服务器发起异步请求,并在请求成功后执行一定的操作,例如更新页面内容等。 Ajax的基本使用方法 在JavaScript中使用Ajax,需要用到XMLHttpRequest对象,通过该对象来向服务器发起请求并获取响应…

    JavaScript 2023年6月11日
    00
  • JS中数组常用的循环遍历你会几种

    JS中数组常用的循环遍历方法主要有五种:for循环、forEach、map、filter和reduce。这些方法可以遍历数组,访问每一个元素,并对它们进行操作。 for循环 for循环是一种基本的JS循环结构,它可以循环遍历数组中的所有元素,并对它们进行操作。 示例: let arr = [1, 2, 3, 4, 5]; for (let i = 0; i …

    JavaScript 2023年5月27日
    00
  • js实现简单的倒计时

    下面是关于“JS实现简单的倒计时”的详细攻略。 基本思路 倒计时的原理很简单,就是获取未来的某个时间点与当前时间点的差值,然后根据差值计算出剩余的时间,最后通过 DOM 操作将剩余的时间显示在网页上。 实现步骤 1. 获取未来时间点 倒计时的第一步就是要获取未来的某个时间点,可以在 HTML 中用一个 input 标签来输入一个日期时间字符串,然后使用 ne…

    JavaScript 2023年5月27日
    00
  • js实现的奥运倒计时时钟效果代码

    我来给您介绍一下实现JavaScript奥运倒计时时钟效果的完整攻略。 1.准备工作 在对奥运倒计时时钟效果进行实现之前,我们需要先准备好一些技术和资源: HTML页面 CSS样式文件 JavaScript代码 首先,在HTML页面中,我们需要创建一个div标签,用来作为倒计时时钟显示的容器。可以为这个div添加一个id属性,方便后续的JavaScript代…

    JavaScript 2023年5月27日
    00
  • 基于js 各种排序方法和sort方法的区别(详解)

    针对“基于js 各种排序方法和sort方法的区别(详解)”这个话题,我将从以下几个方面进行详细讲解。 一、基础排序算法 在介绍各种排序算法之前,我们先了解一下几个基础排序算法:冒泡排序、插入排序和选择排序。 1. 冒泡排序 冒泡排序的基本思路是比较相邻的元素,如果前面的元素比后面的大,则交换这两个元素。每完成一轮比较,就可以确定一个最大的元素,并且这个最大的…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部