var a = (function (undefined) {})(a);

 var TEST = (function (undefined) {


})(TEST);

这是什么写法,有能看懂的吗

执行匿名函数,将返回值复制给TEST变量,有什么看不懂的?最多就是参数什么味undefined有点乌黑聊而已,要获取出入的参数需要使用arguments来获取,不能通过形参名称获取了,undefined是关键字,定义不了形参

还有个var申明变量的变量提升问题,所以执行匿名函数传递TEST不会不错

在函数表达式存储在变量后,变量也可作为一个函数使用:

实例
var x = function (a, b) {return a * b};
var z = x(4, 3);

来源:http://www.runoob.com/js/js-function-definition.html

这属于函数式编程,详见jsp语言

通过var关键字定义一个函数表达式,并通过()立即执行这个函数表达式

JSP语言去看下,稍微搜索一下应该就明白了