今天在读网上的javascript代码时看到这样一种语法,还望高手给解释一下:<script>
(function(){
.....
})();
</script>这种代码应该怎么去理解呢,还望高手不吝赐教!

解决方案 »

  1.   

    (function(){
    .....
    })();立即执行这个匿名函数
      

  2.   

    也就是定义函数并立刻执行,可以这么理解
    var fn=funciton(){};
    fn();
    用上面的写法就省去了fn这个变量
      

  3.   

    js闭包——(我最经也在看这个问题)是js一种封装方法使得函数内部var声明的变量有类似static的效果(作用域)写法演变效果如下:首先  var p=function(){}();

    (function p(){})();
    其次关于闭包
        function a(){
          var i=0;
          function b(){
            alert(++i);
          }
          return b;
        }
        var c = a();
        c()
        c()
    ;
    上述方法简化为var a=function(){
          var i=0;
         return  function b(){
            alert(++i);
          }
          
        }()
    a()
    a()在简化为 (function a(){
          var i=0;
          function b(){
            alert(++i);
          }
          return b;
        })()
        a()
    a()
    a()
    这样做的好处就是使得变量i实现了一种私有属性的效果。
      

  4.   

    在向下延伸可以写成var a=function(){
          var i=0;
      return {
      add:function(){alert(++i)},
      clear:function(k){i=k}
      }
        }()
    a.add()
    a.add()
    a.clear(12)
    a.add()这就是js的面向对象的写法的一种方式了