前言
JavaScript 匿名函数(无名函数)。
匿名函数
匿名函数无法单独定义,必须存储在变量中。匿名函数存储在变量中后,变量也可当作一个函数使用。
var x = function (a, b) { return a * b } ;
上述函数以分号结尾,因为它是一个可执行语句(具体一点,是个赋值语句)。
//调用函数 x(1,2) ;
匿名函数经常被用于 JavaScript 的事件句柄(事件处理程序),或作为函数参数;
var obj = document.getElementById('video'); obj.onclick = function (){ alert('you clicked me!'); };
自调用函数
自调用函数也称为“立即执行函数”,通过给匿名函数添加括号,来说明它是一个函数表达式。如果表达式后面紧跟 () ,则会自动调用。
//我将调用自己 ( function () { var x = "Hello!!"; })(); //它的格式为 ( 函数 )();
以上函数实际上是一个 匿名自我调用的函数。
除了上述情况,还可以在函数前加!、-、+、~ 让函数变为函数表达式。然后紧跟 () ,就会自动调用。
(function (){ alert('ceshi'); })(); !function (){ alert('ceshi'); }(); -function (){ alert('ceshi'); }(); +function (){ alert('ceshi'); }(); ~function (){ alert('ceshi'); }();
同样的方式也可以让有名函数变成“自调用函数”。
(function ceshi(){ alert('ceshi2'); })(); !function ceshi(){ alert('ceshi2'); }(); ~function ceshi(){ alert('ceshi2'); }(); -function ceshi(){ alert('ceshi2'); }(); +function ceshi(){ alert('ceshi2'); }();