1.0.1 • Published 10 years ago

fastbind v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
10 years ago

fastbind  Build Status

Bind a function to an Object ludicrously fast.

This is not a replacement for Function#bind, as it does not support arguments on bind() for performance reasons. Also, each bound function is throw away, you cannot reuse them.

It is 250% faster than bind(), and 5-10% faster than the fastest code you can write (see alternatives).

You want to use this library when you need to pass some state to a callback in a super-hot code path.

Install

npm i fastbind --save

Usage

var bind = require('fastbind')(sum)

function State (a) {
  this.a = a
}

function sum (b) {
  var a = this.a
  console.log(a + b)
}

var state = new State(42)
setImmediate(bind(state), 24)

Alternatives

The other best method for achieving similar performance is:

var a = 42
setImmediate(function (b) {
  aa(a, b)
}, 24)

function sum (a, b) {
  console.log(a + b)
}

This is 5-10% slower than fastbind. You decide if fastbind is worth it or not.

Acknowledgements

fastbind is sponsored by nearForm.

License

MIT

1.0.1

10 years ago

1.0.0

10 years ago

0.0.1

10 years ago