Test name | Executions per second |
---|---|
Lodash cloneDeep | 1105071.6 Ops/sec |
Vanilla clone | 4147275.8 Ops/sec |
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
var MyObject = {
description: 'Creates a deep copy of source, which should be an object or an array.',
myNumber: 123456789,
myBoolean: true,
jayson: {
stringify: 'JSON.stringify() method converts a JavaScript value to a JSON string....',
parse: 'JSON.parse() method parses a JSON string...'
}
};
var myCopy = null;
myCopy = _.cloneDeep(MyObject);
function clone(obj) {
const clone = Object.create(Object.getPrototypeOf(obj));
Object.getOwnPropertyNames(obj).forEach(key => {
Object.defineProperty(clone, key, Object.getOwnPropertyDescriptor(obj, key));
});
return clone;
}
myCopy = clone(MyObject);