nodejs 如何快速的创建两个互不影响但是结构相同的obj 多种方法
时间: 2025-01-28 17:24:41 浏览: 29
在Node.js中,快速创建两个互不影响、但结构相同的对象,可以使用多种方法。以下是几种常见的方式:
1. **字面量法**:
```javascript
let obj1 = { key1: 'value1', key2: 'value2' };
let obj2 = Object.assign({}, obj1); // 或者直接写成 { ...obj1 }
```
这里使用`Object.assign()`复制了一个浅拷贝,如果需要深拷贝则可以使用`lodash`库的`.cloneDeep(obj1)`。
2. **构造函数+new**:
```javascript
function MyObj(props) {
this.props = props;
}
let obj1 = new MyObj({ key1: 'value1', key2: 'value2' });
let obj2 = new MyObj(obj1.props);
```
这种方法适合已有构造函数的情况。
3. **模板字面量或Array.from() + map()**:
```javascript
let obj1 = { key1: 'value1', key2: 'value2' };
let keys = Object.keys(obj1);
let obj2 = JSON.parse(JSON.stringify(obj1)); // 或者keys.map(key => ({ [key]: obj1[key] }));
```
这种方法通过序列化再反序列化实现了深拷贝。
4. **使用类和原型继承** (ES6 Class):
```javascript
class BaseObj {
constructor(props) {
this.props = props;
}
}
class Obj1 extends BaseObj {}
let obj1 = new Obj1({ key1: 'value1', key2: 'value2' });
// 创建第二个实例,继承了同样的属性
let obj2 = new Obj1(obj1.props);
```
每种方法适用于不同的场景,选择最合适的方法取决于实际需求,比如是否需要处理循环引用、数组等复杂数据结构。
阅读全文
相关推荐














