Run details:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Chrome 114
Windows
Desktop
one year ago
Test name Executions per second
Lodash cloneDeep 625394.6 Ops/sec
freeze 272153.8 Ops/sec
HTML Preparation code:
x
 
1
2
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
 
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;
Tests:
  • Lodash cloneDeep

     
    myCopy = _.cloneDeep(MyObject);
  • freeze

     
    function deepFreeze(object) {
      // Retrieve the property names defined on object
      var propNames = Object.getOwnPropertyNames(object);
      // Freeze properties before freezing self
      
      for (let name of propNames) {
        let value = object[name];
        object[name] = value && typeof value === "object" ? 
          deepFreeze(value) : value;
      }
      return Object.freeze(object);
    }
    myCopy = deepFreeze(MyObject)