The best way I know to explain it is with an example:

```js
function call(fn) {
  return fn();
}

function make_money() {
  return "$5.00";
}

// superfluous
console.log("superfluous: %s", call(function () {
  return make_money();
}));

// treating functions as first-class
console.log("first-class: %s", call(make_money));
```

This will produce output of:

```
superfluous: $5.00
first-class: $5.00
```

Same result, but it is obvious which is less code, easier to read and reason about.

The fact of the matter is, whenever a function takes another function, it is doing so because it means to call that function. It doesn't matter which function you pass it, so long as when it is called, it does what you want. In the case of the code we are reviewing, `buffer.read` is referring to a function. If all you are doing in the anonymous function is calling just that function, you may as well just pass the function reference itself so it will get called directly rather than having to pass a wrapper function where you manually invoke it.

I hope this helps.