ECMAScript 2019:getters and setters 的详细介绍

阅读时长 4 分钟读完

在前端开发中,ECMAScript 是我们使用最广泛的语言之一。每年一次的 ECMAScript 版本更新都会带来许多新的特性和改进,其中包括了许多有用的功能和语言特性。在 ECMAScript 2019 中,getters 和 setters 就是这样一项非常实用的新特性。本篇文章将详细介绍它们的使用方法以及在实际开发中的意义。

Getters 和 Setters 介绍

Getters 和 Setters 是 ECMAScript 5 引入的一种新特性,它们旨在更好地支持对象属性的定义。Getters 和 Setters 可以被认为是特殊的函数,它们被称为属性访问器,可以使访问属性时的语法更加直观易懂。

当我们需要读取一个对象上的属性时,我们可能会使用类似这样的语法:obj.prop。但是如果我们希望在读取属性时可以执行一些额外的代码,那么使用 Getters 和 Setters 就显得尤为重要了。

在对象内部,getters 和 setters 通常作为属性的定义方式而存在。getters 和 setters 的功能分别是读和写属性。我们可以使用这两个函数来实现对某个属性的控制,包括限制、标准化等。

下面是一个 Getters 和 Setters 的示例:

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

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

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

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

在上面的代码中,我们定义了一个 person 对象,并创建了一个名为 fullName 的属性。在 get fullName() 函数中,我们返回了 firstNamelastName 拼接后的完整姓名。而在 set fullName(name) 函数中,我们接收一个新的完整姓名值,并将其拆分为 firstNamelastName 两个属性,然后将它们添加到 person 对象上。

在执行 person.fullName = 'Jane Smith' 这句代码时,JavaScript 引擎首先调用了 set fullName(name) 函数,并将新值的参数传递给它。接着 set fullname(name) 函数将该参数拆分为 firstNamelastName 的值,并将这两个新值分别赋值给 person 对象中的对应属性。最后,我们执行了两个 console.log() 命令来检查 person 对象上的 firstNamelastName 是否已更新。

Getters 和 Setters 的应用场景

个人认为 Getters 和 Setters 最大的优势是可以让对象内部的数据访问更加简单和直观,同时还可以提供更加严格的数据控制。下面是一些 Getters 和 Setters 在实际开发中的应用场景:

  1. 数据校验

Getters 和 Setters 可以用来对数据进行校验,例如在一个应用中创建用户时,需要对用户名和密码进行长度限制和字符匹配等限制,通过 set 函数限制输入的数据格式。如果输入的用户名格式不符合要求,那么 set 函数将抛出异常。

  1. 数据规范化

Getters 和 Setters 可以用于数据的规范化,例如,可以使用 Setters 来规范化日期格式。

  1. 变量的保护

Getters 和 Setters 可以简化代码,同时还可以保护对象属性。如果某个属性应该是只读的,并且不能被改变,那么可以使用 getters 来实现。

在实际项目中使用 Getters 和 Setters 时,需要注意不要过度使用,过度使用 Getters 和 Setters 可能会导致性能问题。

总结

通过本篇文章,我们详细了解了 ECMAScript 2019 中 Getters 和 Setters 的用法和优势,同时也涉及到了 Getters 和 Setters 在实际项目中的应用场景。在实际开发中,我们应该根据项目实际情况,合理应用并掌握 Getters 和 Setters,同时注意不要过度使用。对于从对 JavaScript 对象属性读写操作的不友好的语法中释放的开发人员来说,Getters 和 Setters 为对象属性的读写操作提供了更好的控制和灵活性。

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

纠错
反馈