

奇怪的是,如果我用一对()把这个没有名字的函数包起来,就不会报错了。如: 
 代码如下: 
(function (){ 
alert('a function'); 
}) 
 
(注意包裹函数的()!).虽然这样不会报错,但谁能知道这个函数是否声明成功了呢?是不是因为根本没声明所以才不报错呢?我们这样来测试:让函数自己执行一次: 
 代码如下: 
(function (){ 
alert('a function'); 
}()) 
 
可以看到,函数执行了,表明函数是存在的。 
同样,如果这个时候去掉包裹函数的(),则依然会报前面那个错,函数也执行不了。。 
 代码如下: 
function (){ 
alert('a function'); 
}() 
 
这对包裹函数的(),真有这么重要?哪位高手解释一下原理呢? 
