es6 扩展运算符 在对象中用法
时间: 2024-02-12 11:06:07 浏览: 26
ES6 扩展运算符可以用于对象的浅拷贝。例如:
```
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // { a: 1, b: 2, c: 3 }
```
上述代码中,使用扩展运算符将 `obj1` 中的属性拷贝到 `obj2` 中,并在 `obj2` 中添加了属性 `c`。需要注意的是,如果 `obj1` 和 `obj2` 中有同名的属性,后者会覆盖前者。
如果要进行深拷贝,可以使用第三方库,如 `lodash` 的 `cloneDeep` 方法。
相关问题
ES6中对象新增了哪些扩展
ES6中对象新增了以下扩展:
1. 属性简写:当属性名和变量名相同时,可以仅写一个变量名来作为属性名。
2. 计算属性名:可以在对象字面量中使用方括号[]定义属性名,可以动态计算属性名。
3. 方法简写:在对象字面量中定义方法时,可以省略function关键字。
4. 对象解构赋值:可以通过解构赋值的方式从对象中提取属性值赋值给变量。
5. 对象属性的可枚举性:可以通过Object.defineProperty()方法来设置对象属性的可枚举性。
6. Object.assign()方法:用于将源对象的所有可枚举属性复制到目标对象中。
7. Object.setPrototypeOf()方法:用于设置一个对象的原型对象。
8. Object.is()方法:用于比较两个值是否相等,与严格相等运算符(===)的行为基本一致,但是对于NaN和+0/-0的比较,Object.is()方法的结果与严格相等运算符的结果不同。
扩展运算符的用法
扩展运算符(Spread Operator)是ES6中的一个新特性,它可以将一个可迭代的对象(如数组、字符串、Set等)展开成多个元素,或者将多个元素合并成一个数组。
以下是扩展运算符的用法:
1. 展开成多个元素
可以使用扩展运算符将一个数组展开成多个元素:
```javascript
const arr = [1, 2, 3];
console.log(...arr); // 1 2 3
```
可以使用扩展运算符将一个字符串展开成多个字符:
```javascript
const str = "hello";
console.log(...str); // h e l l o
```
2. 合并成一个数组
可以使用扩展运算符将多个数组合并成一个数组:
```javascript
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2];
console.log(arr3); // [1, 2, 3, 4, 5, 6]
```
可以使用扩展运算符将多个可迭代的对象合并成一个数组:
```javascript
const set = new Set([1, 2, 3]);
const str = "hello";
const arr = [...set, ...str];
console.log(arr); // [1, 2, 3, "h", "e", "l", "l", "o"]
```
3. 函数调用时传参
可以使用扩展运算符将一个数组作为参数传入函数:
```javascript
function sum(a, b, c) {
return a + b + c;
}
const arr = [1, 2, 3];
console.log(sum(...arr)); // 6
```
可以使用扩展运算符将多个数组作为参数传入函数:
```javascript
function sum(a, b, c, d, e) {
return a + b + c + d + e;
}
const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = [5];
console.log(sum(...arr1, ...arr2, ...arr3)); // 15
```
以上就是扩展运算符的用法。它可以使我们的代码更简洁、更易读,是一个非常实用的特性。