Получается call вызывается в контексте выражения присваиваемому параметру "context". Честно говоря туман не сильно рассеялся, разве не можно так
Number.prototype.times = function(f) {
var n = Number(this);
for(var i = 0; i < n; i++) f.call(null, i);
};
var n = 3;
n.times(function() {
alert(obj.foo);
});
var obj = {foo: 'bar'};
опять же без ентого параметра "context". Можно ещё пример, может дойдёт. Спасибо