Skip to content

Latest commit

 

History

History
57 lines (39 loc) · 1.28 KB

README.md

File metadata and controls

57 lines (39 loc) · 1.28 KB

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