方法一:JavaScript代码
- function clone(obj){
- var o;
- if(typeof obj == "object"){
- if(obj === null){
- o = null;
- }else{
- if(obj instanceof Array){
- o = [];
- for(var i = 0, len = obj.length; i < len; i++){
- o.push(clone(obj[i]));
- }
- }else{
- o = {};
- for(var k in obj){
- o[k] = clone(obj[k]);
- }
- }
- }
- }else{
- o = obj;
- }
- return o;
- }
方法二:JavaScript代码
- function clone(obj){
- var o, obj;
- if (obj.constructor == Object){
- o = new obj.constructor();
- }else{
- o = new obj.constructor(obj.valueOf());
- }
- for(var key in obj){
- if ( o[key] != obj[key] ){
- if ( typeof(obj[key]) == 'object' ){
- o[key] = clone(obj[key]);
- }else{
- o[key] = obj[key];
- }
- }
- }
- o.toString = obj.toString;
- o.valueOf = obj.valueOf;
- return o;
- }
方法三:JavaScript代码
- function clone(obj){
- function Fn(){}
- Fn.prototype = obj;
- var o = new Fn();
- for(var a in o){
- if(typeof o[a] == "object") {
- o[a] = clone(o[a]);
- }
- }
- return o;
- }