首先我们得了解什么是匿名函数,所谓匿名函数就是一个没有名字的函数,匿名函数可以直接赋值给变量,而且单独的匿名函数是无法运行的。普通函数是有名称的,比如下面的两个函数。
//普通函数
function Box() {
......
}
//匿名函数
function(){
......
}
看下面的实例就可以说明匿名函数与普通函数的区别
/**
* Created by Mr. Tao on 2016/5/26.
*/
//匿名函数就是没有名字的函数,闭包是可访问一个函数作用域里变量的函数
//普通函数
function Box() {
return 'Fuck';
}
//普通函数,必须通过调用函数名称
alert(Box());
/*
//匿名函数
function () { //单独的匿名函数是无法运行的
return 'vvb'; //就算能运行也是无法调用的
}
*/
//把匿名函数赋值给变量
var box1=function () {
return 'vvb';
};
//通过表达式自我执行
(function () { //(匿名函数)();第一个括号芳匿名函数,第二个括号执行
alert('BBN');
})();
//把匿名函数自我执行的返回值赋值给变量
var box2 = (function () {
return 'CCM';
})();
alert(box2);
alert((function () {
return 'BBV';
})());
//自我执行匿名函数的传参
(function (age) {
alert(age);
})(200);
//函数里放一个匿名函数
function BoxK() {
return function () { //闭包
return 'KKK';
}
}
//alert(BoxK()()); //获得KKK看上去太过繁琐,可以使用下面的方法
var c = BoxK();
alert(c());
//当然也可以使用如下
var d = BoxK()();
alert(d);