Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@asins/deep-clone

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@asins/deep-clone

对象深度拷贝

  • 1.0.11
  • latest
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

对象的深度拷贝

支持克隆所有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端的简单版本。

Keywords

FAQs

Package last updated on 18 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc