码迷,mamicode.com
首页 > 其他好文 > 详细

(function(){})()

时间:2015-04-18 16:17:08      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:

(function(){})()

解释:()是最高级别的,一个匿名函数,加上一个马甲,就能立马飞起来。

匿名函数

那么什么是匿名函数?从字面上去解释很简单,没有名字的函数就叫做匿名函数。

举个栗子:我们平时定义函数是这样的:

<!-- lang: js -->
function abs(){
    //code
}

也可以有带参数,有返回值:

<!--lang:js-->
function abc(a){
    return a;
}

那么下面我们来创建一个没有名字的函数:

<!--lang:js-->
function(){
    //code
}

可以看到,这个函数没有名字,不像上面的函数有abc这样的名字。那么,我们还不确定这个没有名字的家伙是不是个函数,我们就地按F12看一下:

<!--lang:js-->
console.log(typeof function(){});  //function

实践证明,这就是一个函数,这个函数没有名字,我们可以给他传参数:

<!--lang:js-->
function(x){
    return x;
}

那么问题来了,这些家伙都没有名字,我们该怎么找到他们,或者说怎样去调用这个函数?

匿名函数的调用

对于普通的函数,我们直接叫他们的名字,他们就会答应,比如刚开始的例子:abc();就可以了,或者我们还可以通过其他途径来调用这个函数:

<!--lang:js-->
var hello =function abc(){};
hello();

下面就是“()”的舞台了,我们指导()的运算级最高,并且()表达的意思是一块,也就是一对小括号就是一块,每一块都有一个返回值。这个返回值就是小括号内表达式的返回值。

所以,当我们把匿名函数用小括号括起来的时候,实际上小括号返回的就是这个匿名函数的对象,因此,我们就可以通过小括号的形式调用这个函数,

然后,在小括号的后面加上一些参数,就实现了调用函数的功能。

虽然上面的话很不好理解,但是它的名字还是比较科学的:“自执行匿名函数”或者“立即调用的函数表达式”。

用的时候就这样:

<!--lang:js-->
(function(){
    //code
})()

也可以传参数:

<!--lang:js-->
(function(x){
    return x
})(x)

声明

上面的这些理解很浅,只当做我学习的一点点记录,如果你感觉到有意思,就笑一笑,如果你感觉到很没意思,也笑一笑。

(function(){})()

标签:

原文地址:http://my.oschina.net/gavin0/blog/403331

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!