在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ 如何通過(guò)defineProperty配合assign實(shí)現(xiàn)深度拷貝?

如何通過(guò)defineProperty配合assign實(shí)現(xiàn)深度拷貝?

 let a = {b:{c:55}};
  let g = Object.assign({},a);
  g.b.c=5;
  //如何實(shí)現(xiàn)
  console.log(g,a);// {b:{c:5}} {b:{c:55}}
回答
編輯回答
刮刮樂(lè)
const toString = (ag) => {
    return Object.prototype.toString.call(ag)
}
const deepClone = (target) => {
    let result = Object.create({})
    if (typeof target === 'number' || typeof target === 'boolean' || typeof target === 'string') {
        return target
    }
    if (toString(target) === '[object Object]') {
        for (let k in target) {
            result[k] = deepClone(target[k])
        }
        return result
    }
    if (toString(target) === '[object Array]') {
        result = target.map(item => {
            return deepClone(item)
        })
        return result
    }
    return target
}
自己寫著玩的
2017年8月28日 05:22