Javascript 中的匿名函数 - 为什么是间接访问?

Anonymous functions in Javascript - why the indirection?

我正在参加 freecodecamp Javascript 训练营。虽然我知道匿名函数的概念并在 C++ 中广泛使用它们,但我无法理解 Javascript 中以下两种情况之间的区别:

案例 A - 这就是我在 Javascript

中第一次编写匿名函数的方式
const stats = {
  max: 56.78,
  min: -0.75
};

const half = (stats) => {
             return (stats.max + stats.min) / 2.0;
};

console.log(half(stats))

案例 B - Freecodecamp 更广泛地使用了以下内容

const stats = {
  max: 56.78,
  min: -0.75
};

const half = (function() {
         return function half(stats) {
             return (stats.max + stats.min) / 2.0;
   };
})();

console.log(half(stats))

起初我认为这与递归有关,但事实并非如此。

我都试过了,return 结果相同,调用签名也相同。关于 案例 B 或任何可能需要这样做的用例,是否还有其他内容?总体而言,我将如何阅读此功能?例如,对于 案例 A,我可以简单地说 half 是一个函数,它将统计数据作为输入,returns 一些值

案例 B 函数称为 self-invoking/excuting 函数。

这里是没有用的。 self executing function