首页 > 代码库 > 编写 javascript 深度克隆函数 deepClone
编写 javascript 深度克隆函数 deepClone
function deepClone(obj) { var _toString = Object.prototype.toString; // null, undefined, non-object, function if (!obj || typeof obj !== ‘object‘) { return obj; } // DOM Node if (obj.nodeType && ‘cloneNode‘ in obj) { return obj.cloneNode(true); } // Date if (_toString.call(obj) === ‘[object Date]‘) { return new Date(obj.getTime()); } // RegExp if (_toString.call(obj) === ‘[object RegExp]‘) { var flags = []; if (obj.global) { flags.push(‘g‘); } if (obj.multiline) { flags.push(‘m‘); } if (obj.ignoreCase) { flags.push(‘i‘); } return new RegExp(obj.source, flags.join(‘‘)); } var result = Array.isArray(obj) ? [] : obj.constructor ? new obj.constructor() : {}; for (var key in obj ) { result[key] = deepClone(obj[key]); } return result;}function A() { this.a = a;}var a = { name: ‘qiu‘, birth: new Date(), pattern: /qiu/gim, container: document.body, hobbys: [‘book‘, new Date(), /aaa/gim, 111]};var c = new A();var b = deepClone(c);console.log(c.a === b.a);console.log(c, b);
编写 javascript 深度克隆函数 deepClone
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。