zoukankan      html  css  js  c++  java
  • 对象的浅拷贝与深拷贝

    因为JS对象和函数都存在引用的关系,某些时候我们想要直接复制一个对象或者数组什么的,存在引用关系会引起程序发生我们不期望发生的改变,所以需要进行拷贝方法的封装。

    浅拷贝,适用于对象深度只有一层,多层的对象要使用深拷贝,把所有层都拷贝出来。

    function simpleCopy(obj){  //浅拷贝
        
        var newObj = {};
        
        for(var attr in obj){
            newObj[attr] = obj[attr];
        }
        
        return newObj;
        
    }

    深拷贝,使用了递归的思路,把所有层都递归出来了。

    function deepCopy(obj){  //深拷贝
    
        if(typeof obj != 'object'){
            console.trace();
            return obj;
        }
        
        var newObj = {};
        
        for(var attr in obj){
            newObj[attr] = deepCopy(obj[attr]);
        }
        
        return newObj;
        
    }
  • 相关阅读:
    v-cloak
    MVVM
    初识ajax
    装瓶学习法
    回调函数(call back)
    如何让学习变得纯粹?
    异步
    grep用法
    Shell中的&&与||的区别
    shell中使用>/dev/null 2>&1 丢弃信息
  • 原文地址:https://www.cnblogs.com/zcynine/p/5554714.html
Copyright © 2011-2022 走看看