先附上js'假克隆'的api--- $.extend (讲道理我还是喜欢java)

关于JS对象深克隆问题

其他参数没什么好说的, 第一个参数重点说一下, 文档介绍是改参数为是否深克隆的标识, java出身的我天真的以为 深克隆跟java中的深克隆一样, 然而并不一样 ,这个深克隆的解释是这个样子的

关于JS对象深克隆问题

区别就在于浅克隆只将第一层的值赋给新对象  深克隆将已有 相同的属性继续向下寻找需要赋值的项 , 跟java的clone方法完全不沾边好吧, 算了不多说, 给出两种js的克隆方法:

一. 手动递归克隆

代码:

function clone(obj) {

   var o = obj instanceof Array ? [] : {};

   for(var k in obj) o[k] = typeof obj[k] === Object ? clone(obj[k]) : obj[k];

return o; }

二.取巧方法(我认为取巧)

代码:

var newobj = JSON.parse(JSON.stringify(obj));

相关文章: