1.0.11 • Published 7 months ago

@asins/deep-clone v1.0.11

Weekly downloads
6
License
ISC
Repository
-
Last release
7 months ago

对象的深度拷贝

支持克隆所有JSON类型:Object Array Number String null 附加支持:Date (复制) undefined (复制) 入参 {Object|Array} o 待深度复制的对象

Types

clones all JSON types:

  • Object
  • Array
  • Number
  • String
  • null

With additional support for:

  • Date (copied)
  • undefined (copied)
  • Buffer (copied)
  • TypedArray (copied)
  • Map (copied)
  • Set (copied)
  • Function (referenced)
  • AsyncFunction (referenced)
  • GeneratorFunction (referenced)
  • arguments (copied to a normal object)

构建最终产物

执行以下命令安装构建前的依赖

npm install

执行以下命令可在dist目录中构建出最终文件,也提供TypeScript的语义文件。

npm run build

使用

使用很简单,此版本更多是为了提供npm包为项目使用

import deepClone from '@asins/deep-clone';

const obj = {
    str: 'This is a string1.',
    arr: [1, 2, 3, {a: 4}],
    obj2: {
        str2: 'This is a string2.',
        obj3: {b: 5, c: [6, 7]},
    }
};
const newObj = deepClone(obj);

console.log(newObj.arr === obj.arr); // false
obj.obj2.str2 = 'string2 changed';
console.log(newObj.obj2.str2); // This is a string2.

性能测试

> npm run bench
benchDeepClone*100: 488.153ms // 首次执行
benchJsonParseJsonStringify*100: 2.155s
benchDeepClone*100: 427.873ms // 快速二次执行
benchJsonParseJsonStringify*100: 2.115s

声明

仓库修改自 rfdc 只用于Web端的简单版本。

1.0.11

7 months ago

1.0.10

7 months ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.2

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago