js深度克隆对象
用js实现对象克隆最关键的两点就是:var objClone = new this.constructor();和objClone[key] = this[key].Clone();。一个实现相同对象创建,一个实现深度克隆。
Object.prototype.Clone = function(){var objClone;if (this.constructor == Object){objClone = new this.constructor();}else{objClone = new this.constructor(this.valueOf());}for(var key in this){if ( objClone[key] != this[key] ){if ( typeof(this[key]) == ‘object’ ){objClone[key] = this[key].Clone();}else{objClone[key] = this[key];}}}objClone.toString = this.toString;objClone.valueOf = this.valueOf;return objClone;} |
不用原型方式实现,万一哪天浏览器厂商一更新可能就会有原生的Clone方法了,只写个方法
function clone(obj){var objClone;if (obj.constructor == Object){objClone = new obj.constructor();}else{objClone = new obj.constructor(obj.valueOf());}for(var key in obj){if ( objClone[key] != obj[key] ){if ( typeof(obj[key]) == ‘object’ ){objClone[key] = clone(obj[key]);}else{objClone[key] = obj[key];}}}objClone.toString = obj.toString;objClone.valueOf = obj.valueOf;return objClone;} |

浙公网安备 33010602011771号