<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>js对象的深度克隆</title>
</head> <body>
<script type="text/javascript">
var cloneObj = function(obj) {
var str, newobj = obj.constructor === Array ? [] : {};
if (typeof obj !== 'object') {
return;
} else if (window.JSON) {
str = JSON.stringify(obj), //系列化对象
newobj = JSON.parse(str); //还原
} else {
for (var i in obj) {
newobj[i] = typeof obj[i] === 'object' ?
cloneObj(obj[i]) : obj[i];
}
}
return newobj;
};
</script>
</body> </html>
相关文章
- js中window对象的opener属性的一个坑
- js中访问对象的方法
- 深入理解JS中的对象(二):new 的工作原理
- JS高级面试题思路(装箱和拆箱、栈和堆、js中sort()方法、.js中Date对象中的getMounth() 需要注意的、开发中编码和解码使用场景有哪些)
- js中Math对象常用的属性和方法
- [翻译] 编写高性能 .NET 代码--第二章 GC -- 减少分配率, 最重要的规则,缩短对象的生命周期,减少对象层次的深度,减少对象之间的引用,避免钉住对象(Pinning)
- 深入解读 Js 中的面向对象编程
- 从零开始的JS生活(三)——内置对象
- js中的事件,内置对象,正则表达式
- js如何遍历并取出对象的属性名?