10 分钟学习 ES7 Object Rest/Spread Properties

阅读时长 5 分钟读完

在 ES6 中,我们有了解构赋值语法,可以很方便地从对象或数组中获取需要的值。而在 ES7 中,新加入了 Object Rest/Spread Properties,使得我们可以更加方便地操作对象。

Object Rest Properties

Object Rest Properties 允许我们从一个对象中取出一部分属性,而不需要一个一个地列出来。具体来说,就是在对象字面量中使用 ... 语法,将其余的属性放在一个新的对象中。

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

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

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

在上面的代码中,我们从 person 对象中取出了 nameage 属性,并使用 Object Rest Properties 将其余的属性放在了 rest 对象中。

Object Spread Properties

Object Spread Properties 允许我们将一个对象的属性展开到另一个对象中,也是使用 ... 语法。与 Object Rest Properties 不同的是,它可以用于对象字面量中的任何位置。

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

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

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

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

在上面的代码中,我们使用 Object Spread Properties 将 person 对象和 contact 对象的属性展开到了一个新的对象中,并将其赋值给了 newPerson 变量。

使用场景

Object Rest/Spread Properties 的使用场景非常广泛,下面介绍几个常见的场景。

合并对象

上面的示例代码已经演示了如何使用 Object Spread Properties 合并两个对象。在实际开发中,我们经常需要将多个对象合并成一个新的对象。

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

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

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

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

在上面的代码中,我们定义了一个 defaultOptions 对象和一个 userOptions 对象,使用 Object Spread Properties 将它们合并成了一个新的 options 对象。

删除属性

使用 Object Rest Properties 可以很方便地删除对象中的某些属性。

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

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

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

在上面的代码中,我们使用 Object Rest Properties 删除了 person 对象中的 email 属性,并将其余的属性放在了 newPerson 对象中。

函数参数

在函数参数中使用 Object Rest/Spread Properties 可以很方便地处理多个参数。

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

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

---------

在上面的代码中,我们定义了一个 foo 函数,使用 Object Rest Properties 将 obj 对象中的 xy 属性传递给函数,并将其余的属性放在了 rest 对象中。

总结

Object Rest/Spread Properties 是一个非常实用的特性,可以让我们更加方便地操作对象。在实际开发中,我们可以根据具体的场景选择使用它们。

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

纠错
反馈