Skip to content

Instantly share code, notes, and snippets.

@anthonybrown
Created March 18, 2014 15:20
Show Gist options
  • Save anthonybrown/9622161 to your computer and use it in GitHub Desktop.
Save anthonybrown/9622161 to your computer and use it in GitHub Desktop.
Polyfill for the bind method
if (!Function.prototype.bind) {
Function.prototype.bind = function (oThis) {
if (typeof this !== 'function') {
throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable.');
}
var aArgs = Array.prototype.slice.call(arguments, 1)
, fToBind = this
, FNOP = function () {}
, fBound = function () {
return fToBind.apply(this instanceof FNOP && oThis ? this : oThis
, aArgs.concate(Array.prototype.slice.call(arguments)));
};
FNOP.prototype = this.prototype;
fBound.prototype = new FNOP();
return fBound;
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment