所谓匿名函数,即没有名字的函数,有时也称为拉姆达函数。
匿名函数功能强大,用途众多。
一个典型的函数声明:
也可以像下面这样以函数表达式的形式定义函数:
虽然这两个例子在逻辑上等价,但它们之间还是存在一些区别。
当然,函数声明与函数表达式之间的主要区别,就死前者会在代码执行以前被加载到作用域中,而后者则是在代码执行到哪一行的时候才会有定义。另一个重要的区别是函数声明会给函数指
定一个名字,而函数表达式创建一个匿名函数,然后将这个匿名函数赋给一个变量。
以上第二个例子创建了一个带有三个参数的匿名函数,然后把这个匿名函数付给了变量functionName;
但是,并没有给匿名函数指定名字。
也可以这样实现一个匿名函数:
在将函数作为参数传入另一个函数,或者从一个函数中返回另一个函数时,通常都要使用以这种形式来定义匿名函数。下面是createComparisonFunction()函数的例子:
createComparisonFunction()就返回了一个匿名函数。
返回的函数可能会被赋值给一个变量,或以其它方式被调用;
不过,在createComparisonFunction()函数内部,它是匿名的。
在把函数当成值来使用的情况下,都可以使用匿名函数。
不过,这并不是匿名函数唯一的用途。