这是返回对象副本的正确方法吗?
class ObjectWrapper {
private _ obj;
/***
* Copy object of argument to this._ obj
*/
constructor (_obj: Object) {
this._obj = _obj;
}
/**
Return copy of * this._ obj (Return copy this._ obj)
* @return Object
*/
get obj () {
return this._obj;
}
我真的很想知道“归还副本”是什么意思
最佳答案
不,您正在返回原始对象。在 JS 中复制对象有多种选择。
通过Object.assign()
的传统方式:
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
Object.assign() 方法仅将可枚举属性和自己的属性从源对象复制到目标对象。
使用spread
运算符的ESNext方法:
const source = { a: 1, b: 2 };
const target = {...source};
ECMAScript 提案的 Rest/Spread 属性(第 4 阶段)向对象字面量添加了扩展属性。它将自己的可枚举属性从提供的对象复制到新对象上。
关于javascript - typescript 返回对象的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54969094/