Спасибо за пояснение.
Вышеуказанный код заработал, но я так и не смог разобраться чтоже в нем все-таки происходит.
Особенно интересуют следующая часть кода
function f(callback) {
Array.prototype.forEach.call(elements, callback);
return this;
}
for (var method in result)
result[method]=f.bind(result, result[method]);
Больше всего мне непонятно, что же происходит здесь, и как после всего этого выглядит result в итоге
for (var method in result)
result[method]=f.bind(result, result[method]);