SkillAgentSearch skills...

Clone.js

JavaScript deep object cloning (with cyclic reference support)

Install / Use

/learn @mdarse/Clone.js
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

clone.js

JavaScript deep object cloning (with cyclic reference support)

Code Climate

This library adds a clone method to global Object function. Object.clone(sourceObject [, deepCloning [, clonePrototypes ]])

Browser support:

  • Internet Explorer 9+
  • Firefox 4+
  • Safari 5+
  • Chrome/Chromium 5+
  • Opera 12+

Examples:

var object = {
    foo: "bar",
    now: new Date(),
    regex: /hi/g,
    fn: function hello() {
        console.log('Hello World !');
    }
};
object.self = object;

var clone = Object.clone(object, true);

// all true
clone !== object;
clone.self === clone;
clone.now !== object.now
clone.now.getTime() === object.now.getTime();
clone.regex !== object.regex
clone.fn === object.fn

Preserves "Class":

function Foo() {
    this.foo = "bar";
}
Foo.prototype.baz = function() {
    console.log(this.foo);
};

var foo = new Foo();
foo.baz(); // => 'bar'


var clone = Object.clone(foo);
clone.baz()             // => 'bar'
clone.foo = "cat";
clone.baz()             // => 'cat'

clone === foo           // false
clone instanceof Foo    // true
clone.__proto__ === foo.__proto__ // true (false when `clonePrototypes` is true)
View on GitHub
GitHub Stars6
CategoryCustomer
Updated7y ago
Forks0

Languages

JavaScript

Security Score

70/100

Audited on May 19, 2018

No findings