JavaScript ES6类的主要功能

标题JavaScript ES6类的主要功能

JavaScript ES6(ECMAScript 6)引入了类(Class)的概念,这是对JavaScript面向对象编程模型的一种更清晰、更简洁的语法糖。虽然在ES6之前,我们可以通过构造函数和原型链实现类似类的行为,但ES6中的类语法更加接近传统面向对象语言如Java或C#。

1.类声明:使用class关键字来定义一个类

复制代码
class Person {
  // ...
}

2.构造函数:类中定义的特殊方法constructor用于创建并初始化新实例

复制代码
class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

3.实例属性和方法:在类内部可以定义实例属性和方法,这些将被所有类的实例共享

复制代码
class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  sayHello() {
    console.log(`Hi, I am ${this.name} and I am ${this.age} years old.`);
  }
}

4.静态属性和方法:使用static关键字定义的属性和方法属于类本身,而不是其任何实例。

复制代码
class Person {
  static species = "Human";
  static getSpecies() {
    return this.species;
  }
}
console.log(Person.getSpecies()); // 输出 "Human"

5.继承:通过extends关键字实现类之间的继承关系,并且子类可以使用super关键字调用父类的构造函数或其他方法

复制代码
class Employee extends Person {
  constructor(name, age, position) {
    super(name, age);
    this.position = position;
  }

  introduceYourself() {
    super.sayHello();
    console.log(`I work as a ${this.position}.`);
  }
}

6.getter 和 setter:类中可以定义访问器属性(getter/setter),用来控制对对象属性的读取和赋值操作

复制代码
class Person {
  constructor(name, age) {
    this._age = age;
  }

  get age() {
    return this._age;
  }

  set age(value) {
    if (value >= 0) {
      this._age = value;
    } else {
      console.error("Age cannot be negative.");
    }
  }
}
相关推荐
RobinDevNotes9 小时前
从 Electron 到 GPUI,9 个跨平台桌面方案该怎么选
前端·javascript·rust·electron·openresty·前端开发工具
程序员大阳10 小时前
HTML+CSS+JS对话式实战(6)-学生端查看活动功能开发
javascript·css·html·模块·查看学生
噢,我明白了11 小时前
JAVA中的一些基础应用知识点
java·开发语言
时间的拾荒人12 小时前
Redis 入门详解:核心特性、重要文件与全局命令实战
开发语言·redis·面试
敲上瘾12 小时前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
码途行者13 小时前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php
旖旎夜光14 小时前
【C++ 基础入门】C++ 多态(中):虚函数表、多态原理与动静绑定
开发语言·c++·笔记·学习
你看我名字14 小时前
产品参数昨天还对,今天已过期:数眼智能与大模型应用如何做资料版本校验
开发语言·架构
老秦包你会15 小时前
计算机网络第二课 ----Socket(套接字)编程预备
开发语言·计算机网络·php
旖旎夜光15 小时前
【C++ 基础入门】C++多态(下):单/多继承虚表、多态补充与 21 道高频题
开发语言·c++·笔记·学习