Why you need this?
var x = 9;
var module = {
x: 81,
getX: function() { return this.x; }
};
module.getX(); // 81
var getX = module.getX;
getX(); // 9, because in this case, "this" refers to the global object
// create a new function with 'this' bound to module
var boundGetX = getX.bind(module);
boundGetX(); // 81
// ----------------------------------------------------
var x = 9;
var module = {
x: 81,
getX: function() { return this.x; }
};
module.getX(); // 81
var getX = module.getX;
getX(); // 9, because in this case, "this" refers to the global object
// create a new function with 'this' bound to module
var boundGetX = getX.bind(module);
boundGetX(); // 81
// ----------------------------------------------------
Function.prototype.bind = function(oThis) {
var args = Array.prototype.slice.call(arguments, 1);
var fToBind = this;
var fToReturn = function() {
return fToBind.apply(oThis, args.concat(Array.prototype.slice.call(arguments)))
}
return fToReturn;
}