Эта функция делает так, что все последующие вызовы будут относиться к другому контексту:
<script type='text/javascript'>
Function.prototype.bind = function (a)
{
var b = this;
return function ()
{
return b.apply(a, arguments);
}
};
var foo = function () {
alert(this);
};
foo(); // window
foo = foo.bind("test");
foo(); // "test"
</script>