美文网首页
引用类型 深拷贝

引用类型 深拷贝

作者: YangJeremy | 来源:发表于2018-03-27 22:10 被阅读0次

基本类型、引用类型

基本类型值(数值、布尔值、字符串、null和undefined):指的是保存在栈内存中的简单数据段;
引用类型值(对象、数组、函数、正则):指的是那些保存在堆内存中的对象,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象

简单一句话,基本类型保存的是简单数据段。引用类型保存的是堆内存的对象,变量其实是一个指针,可以理解为地址,在这个指针上进行改变的话那么再引用出来的就是不一样的值。

对象的深拷贝、浅拷贝


//浅拷贝
  function shallowCopy(oldObj) {
        var newObj = {};
        for(var i in oldObj) {
            if(oldObj.hasOwnProperty(i)) {
                newObj[i] = oldObj[i];
            }
        }
        return newObj;
    }


    

//深拷贝

function deepCopy(oldObj) {
        var newObj = {};
        for(var key in oldObj) {
            if(typeof oldObj[key] === 'object') {
                newObj[key] = deepCopy(oldObj[key]);
            }else{
                newObj[key] = oldObj[key];
            }
        }
        return newObj;
    }

相关文章

  • Java深拷贝和浅拷贝

    定义 浅拷贝 基本数据类型 拷贝数值 引用类型 拷贝对象引用 深拷贝 基本数据类型 拷贝数值 引用类型 拷贝引用所...

  • 手写深拷贝

    1. 简述深拷贝 JavaScript 中有2种变量类型:值类型(基本类型)和引用类型。深拷贝和浅拷贝都是针对引用...

  • 通过jQuery中.extend()方法理解深拷贝

    所谓深拷贝和浅拷贝最大的区别就是js中有简单类型和引用类型的区分,对于简单类型不存在深拷贝和浅拷贝的区分,对于引用...

  • Java深拷贝和浅拷贝的区别

    一、深拷贝和浅拷贝的区别 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝。 深拷...

  • js浅拷贝和深拷贝

    javaScript的变量类型 javaScript的变量类型基本类型:引用类型: 浅拷贝和深拷贝的区分 浅拷贝浅...

  • 引用类型 深拷贝

    基本类型、引用类型 基本类型值(数值、布尔值、字符串、null和undefined):指的是保存在栈内存中的简单数...

  • go和python的深浅拷贝理解

    go深拷贝, 就是拷贝值 go浅拷贝, 拷贝引用 go中赋值就能实现拷贝,针对引用类型(slice,map,cha...

  • JS深拷贝和浅拷贝

    深拷贝是指复制的引用类型不跟着原数据改变而改变。 浅拷贝是指复制的引用类型随原数据改变而改变。 引用类型拷贝的时候...

  • 13.JS基础之变量类型和计算

    值类型和引用类型 值类型和引用类型的存储和拷贝方式都不懂,这里也可以理解深拷贝和浅拷贝的区别 typeof运算符 ...

  • 如何实现数组深拷贝和浅拷贝?

    如何实现数组深拷贝和浅拷贝? 1.背景介绍 javascript分原始类型与引用类型。Array是引用类型,直接用...

网友评论

      本文标题:引用类型 深拷贝

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