ES2018(也称为ES9)引入了Rest Properties和Spread Properties,这两个新特性允许我们更方便地处理对象和数组。
Rest Properties
Rest Properties是一种对象扩展语法,用于收集剩余的键值对属性并将其放入一个单独的变量中。在ES6中,我们已经使用Rest参数(...)来收集剩余的函数参数,现在我们可以使用它来收集对象属性了。
下面是一个简单的示例,它接受一个person对象,并使用Rest Properties将其余属性放入rest变量中:
const person = { name: 'John', age: 30, occupation: 'teacher' }; const { name, ...rest } = person; console.log(name); // 'John' console.log(rest); // { age: 30, occupation: 'teacher' }
在上面的代码中,我们使用了解构赋值语法,将person对象的name属性放入name变量中,将其余属性放入rest变量中。在最后一行,我们打印了rest变量,它只包含性别和职业属性。
Spread Properties
Spread Properties是一种对象展开语法,允许我们将一个或多个对象合并为一个对象。它类似于Rest Properties,但它是在对象字面量中使用的。
下面是一个示例,演示了如何将两个不同的对象合并为一个:
const person = { name: 'John', age: 30 }; const details = { occupation: 'teacher' }; const merged = { ...person, ...details }; console.log(merged); // { name: 'John', age: 30, occupation: 'teacher' }
在上面的代码中,我们首先定义了两个不同的对象person和details,然后使用Spread Properties将它们合并为一个新的对象merged。最后一行打印了merged变量,它包含person和details中的所有属性。
除了对象字面量外,Spread Properties还可以用于函数调用和数组解构中。
总结
Rest Properties和Spread Properties是一种方便的对象扩展语法,它们允许我们更轻松地处理对象和数组。使用Rest Properties,我们可以轻松地收集剩余属性并将它们放入一个单独的变量中。使用Spread Properties,我们可以将多个对象合并为一个。这些新特性使我们的代码更简洁,更易于阅读和编写。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6534bf8e7d4982a6eb9e515e