`arguments` will always be empty here, since its overridden by the anonymous closure you're passing to `setTimeout()`. It should be saved and used from the outer scope, like so:

```js
function throttledFn(event) {
  var args = arguments;
  // ...
  throttledFn.timer = setTimeout(function() {
    fn.apply(null, args);
  }, timeout);
}
```