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
我正在参加 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