0

可能重复:
在 JavaScript 事件代码中对回调和参数使用匿名函数而不是命名函数有什么好处?

我一直在阅读/编写一些基本的 Javascript 和 JQuery 代码,并注意到在我阅读的几乎每个教程中,都使用匿名函数而不是命名函数。

例如,类似:

$('document').ready(function(){
    alert("I am ready.");
});

相对:

function ready(){
    alert("I am ready.");
}

$('document').ready(ready());

第二个例子不是更容易阅读/理解吗?现在,我意识到这些都是非常简单的示例,但我想要说明的一点是,我觉得匿名函数使代码看起来混乱且难以理解。到处都有大括号和括号,因为它是匿名的,所以您不能在其他任何地方使用该函数。

功能的全部意义不在于能够将您的代码组织成不同的模块以使您的代码看起来更干净,使调试更容易并避免冗余代码吗?

为什么有人会使用匿名函数而不是命名函数?他们的目的是什么?

4

2 回答 2

7

匿名函数的要点是您只使用它们一次,而不必在其他地方定义它们(以便重用)。它很整洁,因为它们在要使用的地方(在特定上下文中)是正确的。

使用它们是您的选择。如果你不喜欢他们..不要!

于 2012-10-27T19:59:05.373 回答
2

因为如果您不需要/想要名称,那么将变量环境与未使用的名称混淆是没有意义的。


仅供参考,这个:

$('document').ready(ready());

应该是这样的:

$('document').ready(ready);

...除非您更改了函数以使其返回一个函数。

function ready() {
    return function() {
        alert("I am ready.");
    }
}

但是正如你在这里看到的,我再次使用了一个匿名函数,因为它在它的变量环境中没有其他用途,除了作为返回值。

于 2012-10-27T19:57:58.383 回答