Object.assign( ) 或者扩展运算符 实现浅克隆的代码
时间: 2024-11-06 11:16:19 浏览: 10
`Object.assign()` 和扩展运算符 `...` 都可以用于创建浅复制的对象。以下是两个示例:
1. 使用 `Object.assign()` 浅克隆对象:
```javascript
function shallowClone(obj, target = {}) {
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
target[key] = obj[key];
}
}
return target;
}
// 示例
const originalObj = { a: 1, b: [2, 3] };
const clonedObj = shallowClone(originalObj);
```
2. 使用扩展运算符和 `Object.fromEntries()` 创建浅复制:
```javascript
function shallowCloneWithSpread(obj) {
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, value]));
}
// 示例
const originalObj = { a: 1, b: [2, 3] };
const clonedObj = shallowCloneWithSpread(originalObj);
```
这两种方法都会创建一个新的对象,其中包含原对象的所有属性,但对于数组和其他复杂类型的值,它们只会复制引用,而不是复制整个结构。
阅读全文