在 ECMAScript 2015 中,我们可以使用 class
关键字来定义一个类。类中可以包含多个方法,但是在类方法中,可能会遇到一些问题。本文将会解决类方法中的一些问题,并提供示例代码。
问题一:如何访问类中的成员变量?
在类方法中,可以通过 this
关键字来访问类中的成员变量。例如:
----- ------ - ----------------- - --------- - ----- - ------- - --------------- ---- -- --------------- - - ----- ------ - --- -------------- --------------- -- ----- ---- -- ---
在上面的代码中,speak
方法中通过 this.name
来访问类中的成员变量 name
。
问题二:如何在类中定义静态方法?
在类中可以定义静态方法,静态方法只能通过类调用,不能通过实例调用。在方法前面使用 static
关键字来声明一个静态方法。例如:
----- --------- - ------ ------ -- - ------ - - -- - - ---------------- --- -- ----
在上面的代码中,add
方法前面使用 static
关键字来声明一个静态方法,这个方法不能通过实例调用。
问题三:如何在类中定义计算属性?
在类中可以定义计算属性,计算属性的值不是固定的,而是根据计算得到的。在属性前面使用 get
关键字来声明一个计算属性。例如:
----- ------ - ------------------- - ----------- - ------- - --- ------ - ------ ------- - ----------- -- -- - - ----- ------ - --- ---------- ------------------------- -- ---------------------
在上面的代码中,area
属性前面使用 get
关键字来声明一个计算属性,这个属性的值是根据当前 radius
属性计算得到的。
问题四:如何在类中定义 setter
?
在类中可以定义 setter
,setter
用来改变一个属性的值。在属性前面使用 set
关键字来声明一个 setter
。例如:
----- --------- - ------------------ ------- - ---------- - ------ ----------- - ------- - --- ------ - ------ ---------- - ------------ - --- ------------ - ----------- - ------ - --- ------------- - ------------ - ------ - - ----- --------- - --- ------------ --- ---------------------------- -- ---- --------------- - -- ---------------- - -- ---------------------------- -- -----
在上面的代码中,width
和 height
属性前面都使用了 set
关键字来声明一个 setter
,这样就可以在改变 width
和 height
的值时,重新计算 area
属性的值。
结论
在 ECMAScript 2015 中,类是一种非常方便的编程工具,但是在类方法中,可能会遇到一些问题。本文解决了类方法中的一些问题,并提供了示例代码。希望对读者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/671202d4ad1e889fe202251d