JavaScript中并没有直接提供对象复制(Object Clone)的方法。因此下面的代码中改变对象b的时候,也就改变了对象a。
如果只想改变b而保持a不变,就需要对对象a进行复制。 在可以使用jQuery的情况下,jQuery自带的extend方法可以用来实现对象的复制。
下面的方法,是对象复制的基本想法。 下面的例子则考虑的更全面些,适用于大部分对象的深度复制(Deep Copy)。
// Handle Array // Handle Object throw new Error("Unable to copy obj! Its type isn't supported."); 以上这篇深入理解JavaScript中的对象复制(Object Clone)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。用jQuery进行对象复制
b = a.clone();
if (obj instanceof Date) {
var copy = new Date();
copy.setTime(obj.getTime());
return copy;
}
if (obj instanceof Array) {
var copy = [];
for (var i = 0,var len = obj.length; i < len; ++i) {
copy[i] = clone(obj[i]);
}
return copy;
}
if (obj instanceof Object) {
var copy = {};
for (var attr in obj) {
if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
}
return copy;
}
}