2012-05-16 197 views
0
function(){ 
    alert('a function'); 
} 

当我把它放在firebug的javascript控件上。它显示函数语句需要一个名字javascript匿名函数

(function(){ 
    alert('a function'); 
}()) 

当我把上面这表明ok了。

function(){ 
    alert('a function'); 
}() 

这也说明函数语句需要一个名字,不执行功能。为什么?

+0

的可能重复[什么是围绕一个JavaScript对象/功能/类声明括号是什么意思?(http://stackoverflow.com/questions/440739/what-do-parentheses-surrounding-a-javascript- object function-class-declaration-m) – Quentin

+1

http://stackoverflow.com/a/442408/1113426 – Engineer

回答

1
function(){ 
    alert('a function'); 
} 

是一个函数语句,所以它需要一个名称。

(function(){ 
    alert('a function'); 
}()) 

()将语句更改为表达式,所以没关系。

而且你也可以使用下面的方法。

(function(){ 
    alert('a function'); 
})(); 

!function(){ 
    alert('a function'); 
}(); 

+function(){ 
    alert('a function'); 
}(); 
+0

什么是!功能和+功能的含义?谢谢 – run

+0

他们只是将语句更改为表达式。 – xdazz