解决在 ECMAScript 2015 中的类方法问题

在 ECMAScript 2015 中,我们可以使用 class 关键字来定义一个类。类中可以包含多个方法,但是在类方法中,可能会遇到一些问题。本文将会解决类方法中的一些问题,并提供示例代码。

问题一:如何访问类中的成员变量?

在类方法中,可以通过 this 关键字来访问类中的成员变量。例如:

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

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

在上面的代码中,speak 方法中通过 this.name 来访问类中的成员变量 name

问题二:如何在类中定义静态方法?

在类中可以定义静态方法,静态方法只能通过类调用,不能通过实例调用。在方法前面使用 static 关键字来声明一个静态方法。例如:

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

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

在上面的代码中,add 方法前面使用 static 关键字来声明一个静态方法,这个方法不能通过实例调用。

问题三:如何在类中定义计算属性?

在类中可以定义计算属性,计算属性的值不是固定的,而是根据计算得到的。在属性前面使用 get 关键字来声明一个计算属性。例如:

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

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

在上面的代码中,area 属性前面使用 get 关键字来声明一个计算属性,这个属性的值是根据当前 radius 属性计算得到的。

问题四:如何在类中定义 setter

在类中可以定义 settersetter 用来改变一个属性的值。在属性前面使用 set 关键字来声明一个 setter。例如:

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

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

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

在上面的代码中,widthheight 属性前面都使用了 set 关键字来声明一个 setter,这样就可以在改变 widthheight 的值时,重新计算 area 属性的值。

结论

在 ECMAScript 2015 中,类是一种非常方便的编程工具,但是在类方法中,可能会遇到一些问题。本文解决了类方法中的一些问题,并提供了示例代码。希望对读者有所帮助。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/671202d4ad1e889fe202251d