Native bind vs jQuery.proxy vs Underscore bind (passing an object) (v62)

Revision 62 of this benchmark created on


Description

A variant on this test, substituting a simple object in lieu of a number. Aiming to find out if this causes a significant change in test results.

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js">
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Native bind
var foo = (function(x) {
  return this.num + x;
}).bind({num: 1});
foo(1);
ready
jQuery.proxy
var foo = jQuery.proxy(function(x) {
  return this.num + x;
}, {num: 1});
foo(1);
ready
Underscore.js bind
var foo = _.bind(function(x) {
  return this.num + x;
}, {num: 1});
foo(1)
ready
Without bind
var bar = function(x) {
  return this.num + x;
};
var foo = function(x) { bar.call({num: 1}, x); }
foo(1);
ready
(pseudo) closure
var self = {num: 1};

var foo = function(x) {
  return self.num + x;
};
foo(1)
ready

Revisions

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