Function.prototype.bbind = function(context) {
var _this = this,
args = [].slice.call(arguments, 1);
return function() {
_this.apply( context, args.concat( [].slice.call(arguments) ) );
};
};
var obj = {
prop: 'Bla-bla'
};
function foo() {
alert(this.prop);
}
var a = foo.bbind(obj);
a();