Страшновато выглядит, да? Работает так (по строкам):
- Вызов `bind` сохраняет дополнительные аргументы `args` (они идут со 2го номера) в массив `bindArgs`.
- ... и возвращает обертку `wrapper`.
- Эта обёртка делает из `arguments` массив `args` и затем, используя метод [concat](http://javascript.ru/Array/concat), прибавляет их к аргументам `bindArgs` (карринг).
- Затем передаёт вызов `func` с контекстом и общим массивом аргументов.