Skip to content

JavaScript helper for deep cloning and deep merging objects as efficiently as possible. Supports and clones complex native objects as well as circular references.

License

Hexagon/klon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

klon

Build status npm version MIT License

JavaScript helper for deep cloning and deep merging objects as efficiently as possible. Supports and clones complex native objects as well as circular references. Is also capable of replacing circular references with a string containing "[Circular]".

Installation

npm install klon

Usage

clone(source[, destination][, breakCircular]);

source is the object to be copied.

destination (optional) is the new object, where all properties from source will be copied to.

var klon = require('klon'),
	myObject1 = {
		a: 1,
		b: 2,
		c: {
			u: 14
		}
	},
	myObject2 = {
		c: [
			{ d: new Date() },
			{ e: "Hello" },
			{ f: "Hello" }
		]
	};

// Clone
var newObject1 = klon(myObject1);

// Extend newObject1 with myObject2
klon(myObject2, newObject1)

// Merge two objects into a new one
var newObject3 = klon(newObject2, klon(newObject1, {}) );

// Clone and break circular references
var newObject4 = klon(myObject1, {}, true);

License

MIT

About

JavaScript helper for deep cloning and deep merging objects as efficiently as possible. Supports and clones complex native objects as well as circular references.

Resources

License

Stars

Watchers

Forks

Packages

No packages published