uanr81, всё дело в удобстве. Предположим, что у нас одна и та же функция используется в разных times, для каждой нужен разный контекст:
var a = {foo: 'bar'};
var b = {bar: 'foo'};
function callback() {
    console.log(this);
};
123..times(callback, a);
456..times(callback, b);
А если нам родительский контекст нужно передать?
function a() {
    console.log(this); //hi
    123..times(function() {
         console.log(this); //тут уже другой контекст
    });
};
a.call('hi');
function a() {
    console.log(this); //hi
    123..times(function() {
         console.log(this); //hi
    }, this);
};
a.call('hi');