ES6 类

17 Mar 2025 | 5 分钟阅读

类是面向对象编程 (OOP) 的重要组成部分。类用于定义现实世界对象建模的蓝图,并将代码组织成可重用和逻辑的部分。

在 ES6 之前,在 JavaScript 中创建类很困难。但在 ES6 中,我们可以使用 class 关键字创建类。我们可以通过类表达式或使用类声明将类包含在我们的代码中。

类定义只能包含 构造函数函数。这些组件一起被称为类的成员数据。类包含 构造函数,它为类的对象分配内存。类包含 函数,它们负责对对象执行操作。

注意:类的正文只包含方法,而不是数据属性。

语法:类表达式

语法:类声明

让我们看看类表达式和类声明的说明。

示例 - 类声明

示例 - 类表达式

从类实例化对象

与其他面向对象编程语言一样,我们可以使用 new 关键字从类中实例化一个对象。

语法

示例

访问函数

对象可以访问类的属性和函数。我们使用 '.' 点表示法(period)来访问类的成员数据。

语法

示例

在上面的例子中,我们声明了一个类 Student。类的构造函数包含两个参数 nameage。关键字 'this' 指的是类的当前实例。我们也可以说,上面的构造函数初始化了两个变量 'n' 和 'a',以及传递给构造函数的参数值。

类中的函数 stu() 将打印 nameage 的值。

输出

The Name of the student is:  Peter
The Age of the student is:  20

注意:在类中包含构造函数定义是强制性的,因为,默认情况下,每个类都有一个构造函数。

Static 关键字

static 关键字用于在类中创建静态函数。静态函数只能通过使用类名来引用。

示例

输出

Static Function

类继承

ES6 之前,继承的实现需要几个步骤。但 ES6 通过使用 extendssuper 关键字简化了继承的实现。

继承是从现有实体创建新实体的能力。用于创建新类的类被称为 超类/父 类,而新创建的类被称为 子类/子 类。

一个类可以使用 'extends' 关键字从另一个类继承。除了来自父类的构造函数外,子类继承所有属性和方法。

语法

一个类使用 extends 关键字从另一个类继承。

示例

在上面的例子中,我们声明了一个类 student。通过使用 extends 关键字,我们可以创建一个新类 User,该类与其父类 Student 共享相同的特征。因此,我们可以看到这些类之间存在继承关系。

输出

The name of the student is:  Sahil

继承的类型

继承可以分为单级继承、多重继承和多级继承。 ES6 不支持多重继承。

单级继承

它被定义为派生类只能从一个基类继承的继承。它允许派生类继承基类的行为和属性,这使得代码可以重用,并可以将新功能添加到现有代码中。它使代码重复次数减少。

ES6 Classes

多重继承

在多重继承中,一个类可以从多个类继承。 ES6 不支持它。

ES6 Classes

多级继承

在多级继承中,一个派生类是从另一个派生类创建的。因此,多级继承具有多个父类。

ES6 Classes

让我们通过以下示例来理解它。

示例

输出

eating...
barking...
weeping...

方法重写和继承

这是一个功能,允许子类提供其父类之一已经提供的特定方法的实现。

为方法重写定义了一些规则 -

  • 方法名称必须与父类中的相同。
  • 方法签名必须与父类中的相同。

让我们尝试理解相同的说明

示例

在上面的例子中,父类函数的实现已在子类中更改。在成功执行上述代码后,您将获得以下输出

输出

It is the show() method from the child class

super 关键字

它允许子类调用其直接父类的属性、方法和构造函数。它是在 ECMAScript 2015 或 ES6 中引入的。super.propsuper[expr] 表达式在对象字面量和类的任何方法的定义中都是可读的。

语法

super(参数);

示例

在此示例中,父类的特征已扩展到其子类。这两个类都有其独特的属性。在这里,我们使用 super 关键字来访问从父类到子类的属性。

输出

It is the show() method from the parent class
It is the show() method from the child class

下一个主题ES6 字符串