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

JS (function(){}()) 请兄弟们解释一下这是咋回事
我做了一个测试
var s = function(){
alert(1111);
}();运行结果是弹出一个框显示1111,
然后把它改为


var s = (function(){
alert(1111);
}());
运行结果还是弹出一个框显示1111,这2种写法到底有啥区别呢?


------解决方案--------------------
跑一下就知道了
<script type="text/javascript">
var q = function(){
    return 'q';
}
alert(q)
 var s = function(){
return 's';
}();

alert(s)
var t = (function(){
return 't';
}());
alert(t)
</script>

------解决方案--------------------
js难点重点之一闭包:(function(n){})(i)
------解决方案--------------------
还有一个
var z = (function(){
   return 'z';
})();
------解决方案--------------------
都一样,申明匿名函数后执行

var s = (function(){
alert(1111);
}());
你这个应该意思是
var s = (function(){
alert(1111);
})();
------解决方案--------------------
记住

()
是运算符

(表达式)则表达式的结果将会返回

(function(){...})这样就返回了一个函数

但是 当 ()和函数连接在一起的时候 则表示 函数运算

(function(){...})()  一前一后2个括号 就是调用里面的函数让他执行

------解决方案--------------------
都是一个立即执行的匿名函数,没有区别,第二种执行顺序更清晰一点。
------解决方案--------------------
定义好了JS匿名函数后,立即执行

一般最好的写法是:
(function(){
alert(1111);
})();