1. 程式人生 > >JS 物件深複製方法

JS 物件深複製方法

Javascript物件常見的深拷貝的方式


/*
  方式一: 遞迴拷貝
*/

var clone = function(v) {
  var o = v.constructor === Array ? [] : {};
  for( var key in v) {
    o[key] = typeof v[key] === 'Object' ? clone(v[key]) : v[key];
  }

  return o;
}

console.log(clone(
  {
    data:{
      message: 'hello world'
    }
  }
));

/*
 方式2,利用json物件轉化為字串的方法
*/
var clone2 = function(v) { return ( JSON.parse(JSON.stringify(v)) ); } console.log(clone2( { data:{ message: 'hello world' } } ));