javascript克隆一个对象
/*
 * 克隆一个对象
 */
com.ty.repairtech.JsonOperation.clone = function(obj) {
    // Handle the 3 simple types, and null or undefined
    if (null == obj || "object" != typeof obj)
        return obj;
    // Handle Date
    if ( obj instanceof Date) {
        var copy = new Date();
        copy.setTime(obj.getTime());
        return copy;
    }
    // Handle Array
    if ( obj instanceof Array) {
        var copy = [];
        for (var i = 0, len = obj.length; i < len; ++i) {
            copy[i] = com.ty.repairtech.JsonOperation.clone(obj[i]);
        }
        return copy;
    }
    // Handle Object
    if ( obj instanceof Object) {
        var copy = {};
        for (var attr in obj) {
            if (obj.hasOwnProperty(attr))
                copy[attr] = com.ty.repairtech.JsonOperation.clone(obj[attr]);
        }
        return copy;
    }
    throw new Error("Unable to copy obj! Its type isn't supported.");
}
javascript克隆一个对象的更多相关文章
- JavaScript 克隆
		
JavaScript 克隆 本次学习内容: 克隆:只克隆标签和属性,不克隆文本. 克隆的功能,如果不添加使用Ture,就只会克隆标签和属性,不会克隆文本. 克隆的参数全部是节点对象,不能是字符串 &l ...
 - JavaScript中一个对象如何继承另外一个对象
		
如题,JavaScript中一个对象a如何继承另外一个对象b.即将b中的属性和方法复制到a中去. 面试中遇到了这个问题,当时脑子里的想法是: 1.除了循环遍历复制,还能怎样 2.javascript中 ...
 - JavaScript中一个对象数组按照另一个数组排序
		
JavaScript中一个对象数组按照另一个数组排序 需求:排序 const arr1 = [33, 11, 55, 22, 66]; const arr2 = [{age: 55}, {age: 2 ...
 - js克隆一个对象
		
我们知道,对象类型在赋值的过程中其实是复制了地址,所以如果改变了一方,其他都会被改变.我们应该如何克隆一个对象,并且避免这种现象的发生呢? 方法一:Object.assign function cop ...
 - javascript 克隆对象/数组的方法 clone()
		
1 11 javascript 克隆对象/数组的方法 clone() 1 demo: code: 1 var Obj; 2 let clone = (Obj) => { 3 var buf; ...
 - Javascript深度克隆一个对象
		
Javascript中的对像赋值与Java中是一样的,都为引用传递.就是说,在把一个对像赋值给一个变量时,那么这个变量所指向的仍就是原来对 像的地址.那怎么来做呢?答案是“克隆”. 克隆有两种方法:一 ...
 - JavaScript判断一个对象是否为空
		
本文介绍了判断一个对象是否为空的几种方法 测试用例 test1 = 1; test2 = {}; test3 = {a:1,b:2} 1. 判断Object.keys()的长度 function _i ...
 - JavaScript 判断一个对象的数据类型。
		
1.isString var isString1 = function (obj){ return Object.prototype.toString.call(obj)==="[objec ...
 - JavaScript  克隆对象
		
function clone(origin) { return Object.assign({}, origin); } let aClone = { ...a }; // 等同于 let aClon ...
 
随机推荐
- @Scheduled(cron = "0 0 * * * ?")实现定时任务
			
//每一个小时执行一次 @Scheduled(cron = "0 0 * * * ?") public void saveDailyScoreScheduled() { try { ...
 - Strusts2--课程笔记6
			
拦截器: Struts2的大多数核心功能都是通过拦截器实现的.拦截器之所以称之为"拦截器",是因为它可以在执行Action之前或之后拦截下用户请求,执行一些操作,以增强Action ...
 - windows 7 & protobuf 3.0  & python 3.5
			
置顶: 在Python中使用protocol buffers参考指南 http://blog.csdn.net/losophy/article/details/17006573 其实看这篇文章就可以把 ...
 - 真正实现Netty私有协议开发
			
首先<Netty权威指南>私有协议开发那一章的样例代码是编译不通过的(但是这丝毫不影响本书的价值)处理方案可以参考:http://www.itnose.net/detail/6112870 ...
 - javase
			
http://blog.csdn.net/itlwc/article/category/1572517 http://blog.csdn.net/itlwc
 - hdu_5879_Cure(打表)
			
题目链接:hdu_5879_Cure 题意: 给你一个n,让你计算1/k2的和,k从1到n. 题解: 因为只保留5位小数,所以打个100W的表,比这个数大的直接输出最后一位就行了 #include&l ...
 - [ An Ac a Day ^_^ ] hdu 2553 N皇后问题 搜索
			
曾经想过一天一AC 坚持下来的确不容易额 (我是没坚持下来 尽量以后坚持…… 经典的N皇后问题 搜索的入门问题 学了这么久竟然一直没敲过 今天敲一下…… 这道题也不是很简单额 纯暴力就超时了 要打一下 ...
 - digitalocean纽约机房最先开通IPv6
			
DigitalOcean是一家位于美国的云主机服务商,总部位于纽约,成立于2012年.DigitalOcean的服务器全部采用KVM架构,具体高性能处理能力,并且配备SSD固态硬盘,速度优异.每台设备 ...
 - 创建 .gitignore 文件过滤规
			
文件 .gitignore 的格式规范如下: 所有空行或者以注释符号 # 开头的行都会被 Git 忽略. 可以使用标准的 glob 模式匹配. 匹配模式最后跟反斜杠(/)说明要忽略的是目录. 要忽略指 ...
 - C# 验证码生成(MVC和非MVC两种方式)
			
/// <summary> /// 生成验证码 /// </summary> /// <param name="length">指定验证码的长度 ...