Skip to content

首层深拷贝 ​

本节目标:理解“首层深拷贝”的核心思路,并能把它用于实际开发或面试表达。 一、数组:使用concat 和 slice 是实现数组的拷贝。但都只是对数组的第一层进行深拷贝。

二、对象:ES6的

Object.assgin

方法和 ... 展开运算符实现拷贝。

  • ... 是对象第一层的深拷贝。
  • Object.assign只是拷贝的引用值。
对目标对象的第一层进行深拷贝,然后后面的是浅拷贝。实现
function shallowClone(source) {
    const targetObj = source.constructor === Array ? [] : {};
    for (let keys in source) { // 遍历目标
        if (source.hasOwnProperty(keys)) {
            targetObj[keys] = source[keys];
        }
    }
    return targetObj;
}

本站总访问 — 次