• 技术文章 >web前端 >前端问答

    javascript怎么实现深克隆

    长期闲置长期闲置2022-03-10 11:57:11原创183

    javascript实现深克隆的方法:1、利用“…”延展操作符,可以深克隆一层,但是第二层引用仍然指向原来的位置;2、利用JSON,可以实现多层的深克隆,但是无法复制function,无法适用全部场景;3、利用递归和循环挨个创建参数和赋值。

    本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

    javascript怎么实现深克隆

    由于Object类型与Array类型是引用类型,而引用类型在变量间的相互赋值是将指向内存的指针赋予过去,这样就会导致,当改变b的数据会将a的数据一同改变。

    在这里插入图片描述
    而在实际的开发过程中,有很多时候需要将两个变量间的关联断开,所以需要用到深克隆断开这个联系。

    1、使用延展操作符(…)实现深克隆

    这种方式是最简单且便捷的一种方式,但是只能深克隆一层,第二层的引用依然指向原来的位置。

    在这里插入图片描述

    2、使用JSON实现深克隆

    这种方式也比较简便,并且可以实现多层的深克隆,但是无法复制function,无法适用全部场景。

    在这里插入图片描述
    3、使用递归和循环挨个创建参数和赋值

    能够完全复制一个对象

    // 深克隆function deepCopy(value) {
    	if(value instanceof Function)return value    else if (value instanceof Array) {
            var newValue = []
            for (let i = 0; i < value.length; ++i) newValue[i] = deepCopy(value[i])
            return newValue    } else if (value instanceof Object) {
            var newValue = {}
            for (let i in value) newValue[i] = deepCopy(value[i])
            return newValue    } else return value}

    在这里插入图片描述

    相关推荐:javascript学习教程

    以上就是javascript怎么实现深克隆的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript
    上一篇:jquery库类型分几种 下一篇:es6中三个点是什么意思
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 实例图文详解在JavaScript中实现队列• javascript数组怎么求和、求平均数• JavaScript什么是事件流• javascript substring()方法怎么用• javascript函数可以没有名字吗
    1/1

    PHP中文网