¥0
在JavaScript中如何高效的深度克隆object?
1个回答
0
采纳
jQuery中.clone
方法只能克隆DOM element.
为了克隆JavaScript对象,你可以:
// 浅度拷贝
var newObject = jQuery.extend({}, oldObject);
// 深度拷贝
var newObject = jQuery.extend(true, {}, oldObject);
在jQuery源码里和很多基于Jquery插件里都使用了深度拷贝,效率很高。
虽然var newObject = JSON.parse(JSON.stringify(oldObject));
可能快出10~20%,但是会存在很多问题,比如:
JSON.stringify({key: undefined})
得到的结果是“{}”
- 如果旧对象里有方法,则该方法无效。
输出:var o={};
o.a=function a(){console.log('xx')};
var b=JSON.stringify(o);
console.log(b);
“{}”
撰写回答