Skip to content

浅拷贝 ​

本节目标:理解“浅拷贝”的核心思路,并能把它用于实际开发或面试表达。 浅拷贝****特点

  • 简单类型Undefined,Null,Boolean,Number和String是存入堆,直接引用;
  • object array 则是存入栈中,通过复制指针(内存地址)来引用值;如果拷贝后的对象发生变化,原对象也会发生变化。
function shallowCopy(object) {
    // 只拷贝对象
    if (!object || typeof object !== "object") return;
    // 根据 object 的类型判断是新建一个数组还是对象
    let newObject = Array.isArray(object) ? [] : {};
    // 遍历 object,并且判断是 object 的属性才拷贝
    for (let key in object) {
        if (object.hasOwnProperty(key)) {
            newObject[key] = object[key];
        }
    }
    return newObject;
}

本站总访问 — 次