JavaScript 类的 getter 和 setter

引入 getter 和 setter

在 JavaScript 中,对象属性的访问和赋值是通过点符号或者方括号来完成的。然而,有时候我们希望在访问或修改属性时执行一些额外的操作,比如数据验证、计算等。为了满足这样的需求,JavaScript 提供了 getter 和 setter。

Getter

定义 getter

Getter 是一种特殊的函数,用于获取属性值。在定义类的时候,可以通过 get 关键字来定义一个 getter 方法。这个方法没有参数,返回值是属性的值。

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

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

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

使用场景

Getter 可以用来实现属性的只读特性,或者在获取属性值时进行某些处理,如转换格式、过滤数据等。

Setter

定义 setter

Setter 是一种特殊的函数,用于设置属性值。通过 set 关键字可以定义一个 setter 方法。这个方法有一个参数,表示要设置的新值。

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

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

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

使用场景

Setter 可以用来实现属性的只写特性,或者在设置属性值时进行某些处理,如数据验证、格式化等。

组合使用 getter 和 setter

示例

在实际应用中,getter 和 setter 往往会一起使用,以提供对私有属性的安全访问。

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

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

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

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

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

解释

在这个例子中,radius 属性有一个 getter 和一个 setter,确保半径始终为正数。area 是一个只读属性,通过 getter 方法计算得到。

总结

  • Getter 和 setter 是用于控制对象属性访问和修改的特殊方法。
  • Getter 没有参数,返回属性值;setter 接受一个参数,用于设置属性值。
  • 可以通过组合使用 getter 和 setter 来实现对私有属性的安全访问和修改。

以上就是关于 JavaScript 类的 getter 和 setter 的详细介绍。希望这能帮助你在项目中更灵活地管理和操作对象属性。

纠错
反馈