首页 > 代码库 > (function(){})

(function(){})

原文:http://hi.baidu.com/infol/item/edaef3d2b91eddfdca0c392b

要使用一个函数,我们就得首先声明它的存在,而我们最常用的方式就是使用function语句来定义一个函数,如:

function abc(){    //code to process}

当然,你的函数也可以是带参数的,甚至是带返回值的:

function abc(x,y){    return x+y;}

但是,无论你怎么去定义你的函数,js解释器都会把它翻译成一个Function对象。

技术分享

匿名函数是一个没有实际名字的函数。比如,我们把上面的例子中的函数名去掉,再判断一下他是不是一个函数:

技术分享

我们可以很容易的看到,它们全都是Function对象,换言之,它们都是函数,但是它们都有一个特点:没有名字。所以我们称作“匿名函数”。然而,正因为它们没有“名字”,我们也没有办法找到它们。这就产生了如何去调用一个匿名函数的问题。

要调用一个函数,我们必须要有方法定位它,引用它。所以,我们需要帮它找一个名字,比如:

var abc=function(x,y){    return x+y;}console.log(abc(2,3));

对匿名函数的调用其实还有一种做法,也就是使用()将匿名函数括起来,然后后面再加一对括号。

技术分享

小括号能把我们的表达式组合分块,并且每一块,也就是每一对小括号,都有一个返回值。这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号返回的就是一个匿名函数的Function对象。因此,小括号对加上匿名函数就如同有名字的函数被我们取得了它的引用位置。所以,如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。

技术分享

 

(function(){})