匿名函数
顾名思义就是没有名字的函数
下面说一下它的两个用途:
- 你可以把匿名函数作为一个参数传递给其它函数。
- 你可以定义一个匿名函数并立马执行它
回调函数
因为函数就跟那些可以分配给变量的数据一样,它可以定义,删除,拷贝,所以也可以作为参数传递给函数,简单来说回调函数就是把函数作为参数来用
看一下下面的例子,也是匿名函数的用途之一
<script type="text/javascript">
function one() { return 1; }
function two() { return 2; }
function sum(a, b) { return a() + b(); }
document.write("把函数当作参数:" + sum(one, two) + '<br/>');
document.write("把匿名函数当作参数:" + sum(one, function () { return 1; }) + '<br/>');
</script>
自调用函数
目前为止,我们已经讨论了把匿名函数当成回调函数来使用,现在让我们匿名函数的另一个用途——定义后马上调用,下面是一个例子:
<script type="text/javascript">
(
function () {
function hello() { return 2; }
document.write(hello());
}
)()
var name = "Jeff";
//带参数的
(
function (param) {
document.write(param);
}
)(name)
</script>
- 使用自调用的匿名函数的理由是做一些工作但不需要创建一些全局的变量。
- 一个缺点是,很明显就是你不能调用这个函数2 次(除非你把它放在一个循环或者其它函数里面)。这使得自调用的匿名函数非常适合做一次性或者初始化性质的工作。