ES9 中的 Object Rest/Spread Properties
在 ES6 中,我们已经有了解构赋值和展开运算符,使得处理数组和对象变得更加容易和优雅。而在 ES9 中,Object Rest/Spread Properties 的出现,让处理对象更加方便和灵活。
Object Rest/Spread Properties 是指在对象字面量中,使用 ... 语法来实现对象的展开和剩余属性的收集。下面我们来详细了解一下它的用法和特性。
- 对象展开
对象展开可以将一个对象的所有属性复制到另一个对象中,或者将一个对象的属性添加到另一个对象中。示例代码如下:
const obj1 = { a: 1, b: 2 }; const obj2 = { ...obj1, c: 3 }; console.log(obj2); // { a: 1, b: 2, c: 3 }
在上面的代码中,我们使用了对象展开语法将 obj1 中的属性复制到 obj2 中,并添加了新的属性 c。
- 对象剩余属性
对象剩余属性可以用来收集对象中的剩余属性,将它们存储在一个新的对象中。示例代码如下:
const { a, ...rest } = { a: 1, b: 2, c: 3 }; console.log(rest); // { b: 2, c: 3 }
在上面的代码中,我们使用了对象剩余属性语法将对象中的 a 属性剩余属性收集到 rest 对象中,从而得到了一个新的对象。
- 对象展开和剩余属性的结合使用
对象展开和剩余属性可以结合使用,实现更加灵活的对象操作。示例代码如下:
const obj1 = { a: 1, b: 2, c: 3 }; const { b, ...rest } = obj1; const obj2 = { d: 4, e: 5, ...rest }; console.log(obj2); // { a: 1, c: 3, d: 4, e: 5 }
在上面的代码中,我们首先使用对象剩余属性语法将对象中的 b 属性剩余属性收集到 rest 对象中,然后再使用对象展开语法将 rest 对象中的属性添加到新的对象 obj2 中。
总结
Object Rest/Spread Properties 提供了一种更加方便和灵活的处理对象的方式,可以用来复制和合并对象,收集和提取对象中的属性,以及实现更加复杂的对象操作。在实际开发中,我们可以灵活运用这些特性,使代码更加简洁和优雅。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657d0876d2f5e1655d7d370c