zoukankan      html  css  js  c++  java
  • 原生js 对象深拷贝

    经常需要copy一个对象,又怕拷贝有问题,那下面这段就很方便啦,不用担心copy只是一个引用了。

    /**
        @ values  需要copy的变量
    */
    
    function deepClone(values) {
    	var copy;
    
    	if(values == null || typeof values != "object") return values;  // 为null或者不是对象直接返回
    
    	if(values instanceof Date) {   // Date对象
    		copy = new Date();
    		copy.setTime(values.getTime());
    		return copy;
    	}
    
    	if(values instanceof Array) { 
    		copy = [];
    		for(var i = 0, len = values.length; i < len; i++ ) {
    			copy[i] = deepClone(values[i]);  // 递归调用
    		}
    		return copy;
    	}
    
    	if(values instanceof Object) {
    		copy = {};
    		for (var attr in values) {
    			if(values.hasOwnProperty(attr)) copy[attr] = deepClone(values[attr]); 
    		}
    		return copy;
    	}
    
    	throw new Error('Unable to copy values! Its type isn`t supported.');
    
    }
    

    这个是之前在网上某个大神那边学习 并且 归纳而来, 转载至某处已经不清楚,如有问题可以留言。

    前进道路长,学习不可怠
  • 相关阅读:
    oracle第四天笔记
    oracle第三天笔记
    oracle第二天笔记
    select min from 连接
    decode 函数用法
    服务器
    婚姻
    黑马2018年JavaEE课程大纲
    Kubernetes本地私有仓库配置
    ELK系统分析nginx日志
  • 原文地址:https://www.cnblogs.com/mrzll/p/10277410.html
Copyright © 2011-2022 走看看