The following function underbar function was rewritten by peer of mine like so:

```
    var once = function(func) {
        var alreadyCalled = false;
        var result;

        return function() {
          if (!alreadyCalled) {
            result = func.apply(this, arguments);
            alreadyCalled = true;
          }
        return result
        };
      };

```

Here's how I interpret it. It's a function that takes another function and returns yet another function. If `alreadyCalled` is `false` then set `result = func.apply(this,arguments)`

Can someone please help me understand in a simple way what `func.apply(this,arguments)` is doing in the context of this function. I can't seem to figure it out!