(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个步骤:

  1. 定义匿名函数
  2. 将匿名函数设到变量speak里
  3. speak() 以执行函数

将函数放到speak临时变量里,是不是感到很多此一举?

于是可将此步骤省略:

<script>

( function () { alert(“hello”); } )();   // 弹出“hello”对话框

</script>

如上,省略掉了speak变量,感觉很清爽吧。

 

总结--

可通过如下形式来立即执行匿名函数:

( function( ){…} )();

至于为什么function左边还需要一个括号?这也许不好理解,但不这么做的话就会出错。

就把它当成语法记住吧。(貌似下一版本的Javascript可以将它省略掉。)

 

这种匿名函数被立即执行的方式,被广泛用在闭包里。

至此,可以说大概理解了闭包的60%了吧。

距离学会闭包,又迈出了一大步!:-)

posted on 2012-06-12 01:10  梓シ  阅读(486)  评论(3编辑  收藏  举报

导航