我一直在阅读/编写一些基本的Javascript和JQuery代码,并注意到在我阅读的几乎每个教程中,都使用匿名函数而不是命名函数。
例如:
$('document').ready(function(){
alert("I am ready.");
});
与
function ready(){
alert("I am ready.");
}
$('document').ready(ready());
不是第二个例子,更容易阅读/理解吗?现在,我意识到这些都是非常简单的例子,但我想说的是,我觉得匿名函数使代码看起来混乱而且难以理解。到处都有大括号和括号,你不能在其他任何地方使用这个功能,因为它是匿名的。
能够将代码组织到不同的模块中以使代码看起来更清晰,使调试更容易并避免冗余代码,是不是功能的全部要点?
为什么有人会使用匿名函数而不是命名函数?他们的目的是什么?
答案 0 :(得分:5)
匿名函数的意思是你只使用它们一次而不必在其他地方定义它们(以便重用)。它很整洁,因为它们是正确使用的地方(在某种情况下)。
您可以选择使用它们。如果你不喜欢他们......不要!
答案 1 :(得分:1)
因为如果你不需要/想要这个名字,那么将变量环境与未使用的名称混淆是没有意义的。
而且,仅供参考:
$('document').ready(ready());
应该是这样的:
$('document').ready(ready);
...除非你改变了你的功能,以便它返回一个功能。
function ready() {
return function() {
alert("I am ready.");
}
}
但正如你在这里看到的那样,我再次使用了一个匿名函数,因为除了作为返回值之外,它在变量环境中没有其他用途。