使用匿名函数也要注意经常犯的错误:
- //错误写法1
- (function f1() {
- alert(5);
- })f1(); //这不是匿名函数了!
- //错误写法2
- (function () {
- alert(6);
- }); //语法没有错误,没有调用的匿名函数,后面也没有机会调用了,因为没有名字,找不到调用入口。
- //错误写法3
- function () {
- alert(1);
- }();//没有产生函数的引用就调用
另外要注意理解小括号的作用。
小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的 Function 对象。因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。
来源: