clone

中文文档
2.1.2发布于 2018/03/22MITCommonJS零依赖近 30 天下载 3.5亿

物体和阵列的深克隆

中文使用文档
文档目录8 节
  1. 安装
  2. 示例
  3. API 密码
  4. 循环参考文献
  5. 测试
  6. 卡维特
  7. 错误和问题
  8. 许可证

克隆

build status

info badge

提供防伪 深克隆 用于JavaScript中的对象、数组、数字、字符串等.

安装

npm install clone

(也与浏览器,ender或独立相通

示例

var clone = require('clone');

var a, b;

a = { foo: { bar: 'baz' } };  // initial value of a

b = clone(a);                 // clone a -> b
a.foo.bar = 'foo';            // change a

console.log(a);               // show a
console.log(b);               // show b

这将打印 :

{ foo: { bar: 'foo' } }
{ foo: { bar: 'baz' } }

克隆 克隆简单对象(即使是自定义原型),阵列, 日期对象,和 RegExp 对象。 一切都是循环复制的,所以你 例如,可以在对象的数组中复制日期.

API 密码

clone(val, circular, depth)

  • val -- 您想要克隆的值, 任何允许的类型

  • circular -- 布尔

    打电话 clone 与 circular 设置为 false 如果你确信 obj 没有循环引用。 如有必要,这将提高业绩. 如果 undefined 或者说 null 以 obj。 。 。 .

  • depth -- 要复制对象的深度( 可选的, 默认为无限)

clone.clonePrototype(obj)

  • obj -- 要克隆的对象

一个原型克隆是 奥兰·隆尼(Oran Looney)的描述。 。 。 .

循环参考文献

var a, b;

a = { hello: 'world' };

a.myself = a;
b = clone(a);

console.log(b);

这将打印 :

{ hello: "world", myself: [Circular] }

这么说吧, b.myself 指点 b没有 a不错!

测试

npm test

卡维特

一些特殊对象,如套接字或 process.stdout编号 :stderr 已知没有 可复制。 如果您找到其他无法复制的对象, 请 打开一个 问题。 。 。 .

错误和问题

如果你遇到任何错误或问题,请随意 打开一个问题 : gi 或者发邮件给我 保罗@vorba.ch如果你用我的代码,我也总是想听到你的声音.

许可证

版权:2011-2015年 保罗·福尔巴赫 财务报告和审定财务报表 捐助者。 。 。 .

特此免费准许任何人获得《公约》副本 该软件和相关文档文件(“软件”),用于处理 软件不受限制,包括不受限制 使用、复制、修改、合并、出版、分发、分许可证和/或出售 软件,并允许获得软件的人这样做, 符合下列条件:

上述版权通知和这项许可通知应载入所有 软件的复制件或大部分.

软件是提供的 " AS IS " ,没有任何形式的恐惧、排斥或 包括但不限制于雇佣军的保障 特别是目的和非目的。 永远也不要 A. 任何索赔、索赔或其他负债,不论是否属于 或与之有关的条约、协定或其他文书的行动 软件或软件的使用或其他交易.

版本与发布记录

clone 共发布 38 个版本,首次发布于 2011/09/03;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.42018/03/228 年前
2.1.2latest2018/03/228 年前
1.0.32017/11/098 年前
2.1.12017/03/109 年前
2.1.02016/11/239 年前
2.0.02016/09/2910 年前

关于 clone 的常见问题

clone 是什么?

物体和阵列的深克隆

如何安装 clone?

在项目目录运行 npm install clone,或使用 pnpm add / yarn add / bun add。

clone 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/clone 是否存在。

clone 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

clone 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=0.8。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

clone 可以商用吗?

clone 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

clone 的下载量有多少?

根据 npm 官方下载统计,clone 在 2026/10/05 – 2026/11/03 这 30 天内被下载 350,886,745 次,日均约 11,696,225 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

clone 还在维护吗?

最新版本 2.1.2 发布于 2018/03/22(8 年前);至今共发布 38 个版本,其中过去 12 个月发布了 0 个;首次发布于 2011/09/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。