Javascript 克隆工具方法

/**
 * Object deepclone
 * @param {Object} obj the object need clone
 */
module.exports = function deepclone (obj) {
  if (typeof obj !== 'object' || obj === null) {
    return obj
  }

  if (Array.isArray(obj)) {
    return obj.map(v => {
      if (typeof v === 'object' && v !== null) return deepclone(v)
      else return v
    })
  } else {
    const newObj = {}

    Object.keys(obj).forEach(v => {
      if (typeof obj[v] === 'object' && obj[v] !== null) {
        newObj[v] = deepclone(obj[v])
      } else {
        newObj[v] = obj[v]
      }
    })

    return newObj
  }
}

猜你喜欢

转载自blog.csdn.net/roamingcode/article/details/81975935