type _typeObj = { [anyKey: string]: any }
/**
* @param copy 深拷贝
* @param _object 如果不传返回为空对象 必须是js的{}对象
* @param _obj 可选 返回传入的@param _object 必须是js的{}对象,
*/
export const copy = (_object: _typeObj, _obj: _typeObj = {}): _typeObj => {
if (!(Object.prototype === Object.getPrototypeOf(_object))) {
return new Error('传入参数***_object***类型错误')
}
for (let key in _object) {
if (Object.prototype === Object.getPrototypeOf(_object[key])) {
_obj[key] = copy(_object[key])
} else {
_obj[key] = _object[key]
}
}
return _obj
}
ts 深拷贝
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 需求:一个对象数组,然后想将这个数组拷贝出来一份用,修改拷贝的这份数组,保持原始数据不被改变. 我自己的理解: c...
- Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 ...
- 浅拷贝与深拷贝 浅拷贝和深拷贝的对比,主要体现在引用数据类型的拷贝上,对于浅拷贝来说,B拷贝了A,A改变,B会受影...
- 深拷贝内存拷贝 浅拷贝指针拷贝 浅拷贝 深拷贝 集合的浅复制 (shallow copy) 集合的浅复制有非常多种...
- 在JS中,数据类型分为基本数据类型和引用数据类型两种,对于基本数据类型来说,它的值直接存储在栈内存中,而对于引用类...