什么是匿名函数
匿名函数顾名思义就是没有名字的函数。
如下是一个普通函数
function fn(){
//执行代码
}
fn();//调用
如下是一个匿名函数
function(){
//执行代码
}
这种写法在编译的时候会报错:Uncaught SyntaxError: Unexpected token (
因为浏览器在进行语法分析的时候发现这个函数根本没法执行。
如何让匿名函数运行?
- 将匿名函数赋值给一个变量,通过变量名执行函数
var fn = function () {
// 执行代码
}
fn();
-
第一部分是括号里面的匿名函数,第二部分是加上括号的匿名函数,第三部分带上最后面执行用的括号。匿名函数在括号内部可以看成是将匿名函数当成是一个变量,再通过括号进行执行。
(function(){
// 执行代码
console.log("打印成功");
})();
这种方法又叫自执行函数。像JQuery 等一些工具包都会用这种写法。自执行函数的优点是为了保证自执行函数中的变量不会受到其他环境的污染。
匿名函数的作用:
- 通过匿名函数可以实现闭包,关于闭包在后面的文章中会重点讲解。在这里简单介绍一下:闭包是可以访问在函数作用域内定义的变量的函数。若要创建一个闭包,往往都需要用到匿名函数。
- 模拟块级作用域,减少全局变量。执行完匿名函数,存储在内存中相对应的变量会被销毁,从而节省内存。再者,在大型多人开发的项目中,使用块级作用域,会大大降低命名冲突的问题,从而避免产生灾难性的后果。自此开发者再也不必担心搞乱全局作用域了。