(Javascript) 猴子也明白 之 闭包超级入门 3 匿名函数
定义函数的方法1 (普通做法)
<script>
function speak(){ alert(“hello”); }
speak(); // 弹出“hello”对话框
</script>
相当普通的做法。
以下是Javascript特有的写法。
定义函数的方法2 (使用匿名函数)
<script>
var speak = function () { alert(“hello”); }
speak(); // 弹出“hello”对话框
</script>
注意第2行。
等式右边的function (){…..}就叫做匿名函数
将等式右边的匿名函数放入speak变量,然后就可以把
speak变量当函数使用。
speak()--当speak后加上括号,就执行了函数。
以上方法1和方法2,可以认为几乎是等价的。
定义匿名函数,并立即执行
在上记的方法2,一共有3个步骤:
- 定义匿名函数
- 将匿名函数设到变量speak里
- speak() 以执行函数
将函数放到speak临时变量里,是不是感到很多此一举?
于是可将此步骤省略:
<script>
( function () { alert(“hello”); } )(); // 弹出“hello”对话框
</script>
如上,省略掉了speak变量,感觉很清爽吧。
总结--
可通过如下形式来立即执行匿名函数:
( function( ){…} )();
至于为什么function左边还需要一个括号?这也许不好理解,但不这么做的话就会出错。
就把它当成语法记住吧。(貌似下一版本的Javascript可以将它省略掉。)
这种匿名函数被立即执行的方式,被广泛用在闭包里。
至此,可以说大概理解了闭包的60%了吧。
距离学会闭包,又迈出了一大步!:-)