为什么使用匿名函数?

时间:2012-10-27 19:54:43

标签: javascript jquery anonymous-function

  

可能重复:
  What are the benefits to using anonymous functions instead of named functions for callbacks and paramaters in JavaScript event code?

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

例如:

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

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

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

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

能够将代码组织到不同的模块中以使代码看起来更清晰,使调试更容易并避免冗余代码,是不是功能的全部要点?

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

2 个答案:

答案 0 :(得分:5)

匿名函数的意思是你只使用它们一次而不必在其他地方定义它们(以便重用)。它很整洁,因为它们是正确使用的地方(在某种情况下)。

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

答案 1 :(得分:1)

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


而且,仅供参考:

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

应该是这样的:

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

...除非你改变了你的功能,以便它返回一个功能。

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

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