引入 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 的详细介绍。希望这能帮助你在项目中更灵活地管理和操作对象属性。