在javascript中,函数是顶级对象。它们可以存储在变量中,可以作为参数传给其他函数,也可以作为返回值从其他函数中传出,还可以在运行时进行构造,正是它的这些特性,构建了传统的面向对象框架的基础。
在定义一个函数时,我们可以定义没有函数名的函数,也可以把它赋给变量。
例:
(function (){ var foo=10; var bar=2; alert(foo*bar); })()
这个函数定义后会自动被执行。
使用匿名函数最有大用途是用来创建闭包。闭包是一个受到保护的变量空间,由内嵌函数生成。由于函数的作用域,定义在函数中的变量不能被函数外部调用访问。通过闭包,我们可以把变量包裹在匿名函数中对其保护。
例:
var baz; (function(){ var foo=10; var bar=2; baz=function(){ return foo*bar; }; })() //外部调用; baz();