class Copy {

  static deepClone(orig) {

    const copy = Object.create(Object.getPrototypeOf(orig));

    return this.copyOwnPropertiesFrom(copy, orig);

  }

 

  static copyOwnPropertiesFrom(target, source) {

    Object.getOwnPropertyNames(source).forEach((propKey) => {

      const desc = Object.getOwnPropertyDescriptor(source, propKey);

      Object.defineProperty(target, propKey, desc);

    });

    return target;

  }

}

Copy.deepClone(window) // 深拷贝window/this

posted on 2021-02-21 21:52  ygunoil  阅读(110)  评论(0编辑  收藏  举报