美文网首页
Javascript完美拷贝对象

Javascript完美拷贝对象

作者: Hi小胡 | 来源:发表于2018-11-06 11:45 被阅读13次
function clone(obj) {
    if (obj === null) return null
    if (typeof obj !== 'object') return obj;
    if (obj.constructor === Date) return new Date(obj);
    if (obj.constructor === RegExp) return new RegExp(obj);
    var newObj = new obj.constructor(); //保持继承链
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) { //不遍历其原型链上的属性
            var val = obj[key];
            newObj[key] = typeof val === 'object' ? arguments.callee(val) : val; // 使用arguments.callee解除与函数名的耦合
        }
    }
    return newObj;
}

相关文章

  • Javascript完美拷贝对象

  • JavaScript深拷贝、浅拷贝

    JavaScript深拷贝、浅拷贝 浅拷贝:浅拷贝只是复制了内存地址,如果原地址中的对象改变了,浅拷贝出来的对象也...

  • JavaScript对象02

    JavaScript对象02 对象浅拷贝 浅拷贝:不会考虑对象的层次结构,不会考虑任何引用类型, 换句话说,浅拷贝...

  • Javascript实现对象拷贝

    在日常开发中,当想用某个变量去获取另外一个对象变量数据时,最直接的方法是: let obj2 = obj1 由于对...

  • JavaScript 对象深浅拷贝

    浅拷贝: 深拷贝:

  • JavaScript对象的拷贝

    本文主要介绍js对象的拷贝,包括浅拷贝和深拷贝,侧重实际方式,简单介绍概念。 一、js数据类型 js数据有不同的划...

  • JavaScript对象深浅拷贝

    首先对象属性和方法的简写方法。 Object.assign()Object.assign方法用于对象的合并。当对象...

  • Javascript的对象拷贝

    在开始之前,我先普及一些基础知识。Javascript 的对象只是指向内存中某个位置的指针。这些指针是可变的,也就...

  • JavaScript复制数组方式

    浅拷贝 这种数组拷贝方式就是浅拷贝,因为JavaScript存储对象都是存地址的,所以浅复制会导致 arr1 和 ...

  • JavaScript 原生js深拷贝的实现

    这次的学习深拷贝参考了子匠大大的文章:《JavaScript中对象的深拷贝》 JSON.parse()&JSON....

网友评论

      本文标题:Javascript完美拷贝对象

      本文链接:https://www.haomeiwen.com/subject/vwnyxqtx.html