Underscore.js _.defaults vs. _.extend

Benchmark created on


Preparation HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js"></script>

Setup

var defaultConfig = {
      test: true,
      foo: 'bar',
      expiry: 5
    };
    
    var config = defaultConfig;
    
    var obj = {
      foo: 'baz'
    };

Test runner

Ready to run.

Testing in
TestOps/sec
_.defaults (1)
_.defaults(config, obj, defaultConfig);
ready
_.extend (1)
_.extend(config, obj);
ready
_.defaults (2)
config = _.defaults(obj, defaultConfig);
ready
_.extend (2)
config = _.extend(defaultConfig, obj);
ready
_.defaults (3)
config = _.defaults({}, obj, defaultConfig);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.