对象深拷贝和浅拷贝

2017-10-31  本文已影响5人  Sketch

浅拷贝

function shallowCopy(oldObj) {
  var newObj = {};
  for (var i in oldObj) {
    if (oldObj.hasOwnProperty(i)) {
      newObj[i] = oldObj[i];
    }
  }
  return newObj;
}

深拷贝

深拷贝的递归方法

function deepCopy(oldObj) {
  var newObj = {};

  for (var key in oldObj) {
    if (typeof oldObj[key] === 'object' && typeof oldObj[key] !== null) {
      newObj[key] = deepCopy(oldObj[key]);
    } else {
      newObj[key] = oldObj[key];
    }
  }
  return newObj;
}

深拷贝的JSON方法

newObj = JSON.parse(JSON.stringify(oldObj));
上一篇 下一篇

猜你喜欢

热点阅读