经典对象克隆模型 深度克隆

简介: 经典对象克隆模型 深度克隆

我们都知道 JSON.parse(JSON.stringfy(obj)) 可以深度克隆一个对象,但是有一个缺陷,不能克隆代理对象


/**
 * 克隆的方法
 * @param obj
 * @returns {*}
 */
function clone(obj) {
    if (obj instanceof Array) {
        return cloneArray(obj);
    } else if (obj instanceof Object) {
        return cloneObj(obj)
    } else {
        return obj;
    }
}
/**
 * 克隆对象
 * @param obj
 * @returns {{}}
 */
function cloneObj(obj) {
    let res = {};
    // 获取对象里面的所有属性,包括对象里面的属性
    let objAttr = Object.getOwnPropertyNames(obj);
    for (let i = 0; i < objAttr.length; i++) {
        res[objAttr[i]] = clone(obj[objAttr[i]]);
    }
    return res;
}
/**
 * 克隆数组
 * @param array
 * @returns {[]}
 */
function cloneArray(array) {
    let arr = new Array(array.length);
    for (let i = 0; i < array.length; i++) {
        arr[i] = clone(array[i]);
    }
    return arr;
}
相关文章
|
5月前
|
机器学习/深度学习 人工智能 算法
MotionClone:无需训练,一键克隆视频运动
【8月更文挑战第3天】MotionClone是由Pengyang Ling等人开发的一种无需训练即可实现运动克隆的框架,解决了现有视频生成技术在运动控制上的局限。它通过时间注意力机制从参考视频提取运动信息,并使用主要时间注意力指导减轻噪声影响,同时引入位置感知语义指导以增强空间布局控制。这些创新使MotionClone在运动保真度、文本对齐及时序一致性上超越传统方法,展现出巨大的应用潜力。不过,它也面临缺乏参考视频时性能受限及处理复杂运动模式时的挑战。论文详情参见[链接]。
108 3
|
8月前
|
C语言
【C 语言经典100例】C 练习实例 54
【C 语言经典100例】C 练习实例 54
30 0
|
8月前
|
C语言
【C 语言经典100例】C 练习实例39
【C 语言经典100例】C 练习实例39
31 0
|
8月前
|
Python
创建模型
创建模型。
37 1
|
8月前
|
C语言
【 C 语言经典100例】C 练习实例2
【 C 语言经典100例】C 练习实例2
42 0
|
8月前
|
C语言
【C 语言经典100例】C 练习实例12
【C 语言经典100例】C 练习实例12
38 0
|
8月前
|
C语言
【C 语言经典100例】C 练习实例17
【C 语言经典100例】C 练习实例17
22 0
|
人工智能 数据可视化 人机交互
基于跨模态元迁移,美图&大连理工的参考视频目标分割方法只需单阶段
基于跨模态元迁移,美图&大连理工的参考视频目标分割方法只需单阶段
106 0
|
机器学习/深度学习
卷积神经网络中的参数共享/权重复制
卷积神经网络中的参数共享/权重复制
445 0
卷积神经网络中的参数共享/权重复制
|
PHP 开发者

热门文章

最新文章