日期:2014-05-16  浏览次数:20363 次

javascript 定义并立即执行匿名函数(两个括号格式)
编写jQuery插件不能假设$一直有效,所以每次应该使用完整的jQuery名称.

在较长的插件中,许多开发者觉得不适用$简写方式会使代码不易阅读,为了解决这个问题可以通过定义并执行函数的方式,在插件的作用域内定义局部的简写方式,定义并立即执行函数的语法格式如下:


(function($){
//此处为jquery的逻辑代码
})(jQuery);

使用()将匿名函数括起来,然后后面再加一对小括号(包含参数列表)。例子如下:
alert((function(x,y){return x+y;})(2,3)); // “5″
alert((new Function(“x”,”y”,”return x*y;”))(2,3)); // “6″

乍一看觉得这种方式很奇怪,不知道为何能成功执行.
大家知道小括号的作用吗?小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号对返回的,就是一个匿名函数的Function对象。因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。

其实命名函数也可以通过()去立即执行,jQuery就是一个大的立即执行匿名函数。