在 ES6/ES2015 中使用类

阅读时长 5 分钟读完

在 ES6/ES2015 中引入了类(class),这为 JavaScript 开发中的面向对象编程(OOP)提供了更为直观和易用的方式。在本文中,我们将讨论类的概念、用法和示例。

类的概念

类是一种模板或蓝图,它描述了一组属性和方法,用于创建特定类型的对象。类是对象的抽象,而对象是类的实例。

类通过关键字 class 定义,其中包含了构造函数(constructor)、类方法(class method)、实例方法(instance method)、getter 和 setter 以及静态方法(static method)。

类的用法

类的创建

创建一个类的基本语法为:

-- -------------------- ---- -------
----- -- -
  ---------------- ---- --- ---- -
    -- ----
  -
  ------ -
    -- ----
  -
  ------ -
    -- ----
  -
  --
-

新建一个类通常需要定义一个构造函数,使用 constructor 关键字来定义,它是类的默认方法,在使用 new 操作符时自动调用。

-- -------------------- ---- -------
----- ------ -
  ----------------- ---- -
    --------- - -----
    -------- - ----
  -
  
  ---------- -
    ------------------- ----------------
  -
-

--- - - --- -------------- ----
------------- -- ------ -----

使用 new 操作符来实例化一个类,它将返回一个新的对象,具有类的属性和方法。在实例化过程中,构造函数会被调用并将参数传递给它,以初始化新对象的属性。

类的继承

类的继承和其他语言中的继承很相似,通过关键字 extends 来实现。子类可以访问父类的所有属性和方法。

-- -------------------- ---- -------
----- ------ -
  ----------------- -
    --------- - -----
  -

  ---------- -
    ------------------- - -- ----------------
  -
-

----- --- ------- ------ -
  ----------------- ------ -
    ------------
    ---------- - ------
  -

  --------- -
    ------------------ - -- - ------------- -------
  -
-

--- - - --- ------------- ---------
------------- -- ------ - -- -------
------------ -- ----- - -- - ----- ----

在子类中引用父类的方法需要使用 super 关键字,可以在子类的方法中调用父类的方法。

类的 getter 和 setter

ES6 中引入了 getter 和 setter,用于取值(get)和赋值(set)操作,分别使用 get 和 set 关键字来定义。

-- -------------------- ---- -------
----- ------ -
  ---------------------- --------- -
    -------------- - ----------
    ------------- - ---------
  -

  --- ---------- -
    ------ ------------------ ------------------
  -

  --- --------------- -
    ---------------- -------------- - ------------- ---
  -
-

--- - - --- --------------- ----------
------------------------ -- ----- ------
---------- - --------- ---------
------------------------ -- -------- -------

在上面的示例中,我们定义了一个 Person 类,其中 fullName 是类的一个属性。使用 get 方法,我们可以从 fullName 中获取 firstName 和 lastName 的值,使用 set 方法,我们可以从 fullName 中设置 firstName 和 lastName 的值。

类的静态方法

静态方法是类本身(而不是类的实例)的方法。可以在类的内部使用 static 关键字定义。

在上面示例中,我们定义了一个 MathUtils 类,并在其中定义了一个静态方法 sum,该方法将返回所有输入数字的总和。这个方法不需要通过实例化对象的方式来调用,而是通过类名来调用。

总结

ES6 中引入了类的概念,提高了 JavaScript 的面向对象编程的直观性和易用性。在本文中,我们介绍了类的基本概念、用法和示例。在编写又大又复杂的程序时,类使代码更整洁、更易于管理。通过ES6的类,我们可以轻松创建高效的、易于维护的代码。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654ae2c77d4982a6eb4dcced

纠错
反馈