clones

WebJar for clones

Лицензия

Лицензия

MIT
Группа

Группа

org.webjars.npm
Идентификатор

Идентификатор

clones
Последняя версия

Последняя версия

1.2.0
Дата

Дата

Тип

Тип

jar
Описание

Описание

clones
WebJar for clones
Ссылка на сайт

Ссылка на сайт

http://webjars.org
Система контроля версий

Система контроля версий

https://github.com/commenthol/clones

Скачать clones

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/org.webjars.npm/clones/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>clones</artifactId>
    <version>1.2.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/clones/
implementation 'org.webjars.npm:clones:1.2.0'
// https://jarcasting.com/artifacts/org.webjars.npm/clones/
implementation ("org.webjars.npm:clones:1.2.0")
'org.webjars.npm:clones:jar:1.2.0'
<dependency org="org.webjars.npm" name="clones" rev="1.2.0">
  <artifact name="clones" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='clones', version='1.2.0')
)
libraryDependencies += "org.webjars.npm" % "clones" % "1.2.0"
[org.webjars.npm/clones "1.2.0"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

Модули Проекта

Данный проект не имеет модулей.

clones

NPM version

should deep clone everything even global objects, functions, circularities, ...

Companion for safer-eval.

Runs on node and in modern browsers:

Versions
node 0.12, 4, 6, 8, 10, 11
Chrome 55, 56, 71
Firefox 45, 51, 64
Edge 14, 16
IE 11
Safari 10
iOS Safari 10

Installation

npm i -S clones

Usage

const clones = require('clones')
const dest = clones(source, [bind])

Parameters

Parameters

source: Object, clone source

bind: Object, bind functions to this context

Returns: Any, deep clone of source

Example:

const clones = require('clones')

var source = {
  obj: {a: {b: 1}},
  arr: [true, 1, {c: 'dee'}],
  fn: function () { return this.number + 12 }
}
// adding circularity
source.obj.a.e = source.obj.a

// do the cloning (with binding a context)
var dest = clones(source, {number: 30})
// => { obj: { a: { b: 1, e: [Circular] }, d: 2017-02-17T21:57:44.576Z },
//      arr: [ true, 1, { c: 'dee' } ],
//      fn: [Function: fn] }

// checks
assert.ok(dest !== source)                      // has different reference
assert.ok(dest.obj !== source.obj)              // has different reference
assert.ok(dest.obj.a !== source.obj.a)          // has different reference
assert.ok(dest.obj.a.e !== source.obj.a.e)      // different references for circularities
assert.equal(dest.obj.d.toISOString(),
  source.obj.d.toISOString())                   // has same content
assert.ok(dest.fn !== source.fn)                // has different function reference
source.fn = source.fn.bind({number: 29})        // bind `this` for `source`
assert.equal(dest.fn(), source.fn() + 1)        // returning the same result

Clone prototypes or classes

const clones = require('clones')
// clone built in `Array`
const C = clones.classes(Array)

let c = new C(1,2,3)
// => [1, 2, 3]
c.reverse()
// => [3, 2, 1]

License

MIT

Версии библиотеки

Версия
1.2.0