JavaScript-函数篇-003(JavaScript中的匿名函数)

来源:互联网 发布:sql server哪个版本好 编辑:程序博客网 时间:2024/05/29 19:00
在开源的JavaScript框架中能看到很多这样语法结构
       (function(){
         ......
       }
       )()
比如我最近看的jQuery,及chediter。刚开始的时候我看到这样的结果有点奇怪,它是怎么执行的,
并且这是什么样的语法结构,最近偶尔看闭包的时候,才发现原来这是JavaScript中的匿名函数
(看到这个有点汗,java的匿名类见过,就从来没想到JavaScript中会有匿名函数,也是学的不够牢固)。


现在我们了解到以上是JavaScript匿名函数的语法结构,怎么声明函数,
匿名函数JavaScript是怎么执行的,匿名函数的代码模式。这些问题就是我们接下来要探讨的问题。


第一:怎么声明函数
      1. 函数声明        function test(){ }
      2. 函数表达式      var test = function(){};
         匿名函数(属于2) function(){}  
 3. new关键字       var test = new Function([arguments], Body);


 
第二:匿名函数怎样执行
     (function(){
 
  // do something...
})();
      其实有两部分构成:
 (function(){
   //.....
 })  表示为函数的定义
 ():  表示立即执行匿名函数
 
 等价于:
 var test = function(){
   //...
 } //声明匿名类并将匿名函数赋予变量test。 
 test();
第三:匿名函数的代码模式
      1.错误模式:其无法工作,浏览器会报语法错
   function(){
 //....
}();
 2.函数字面量:首先声明一个函数对象,然后执行它。 也称为立即执行函数。
   (function(){
 //....
})();

编译一定能通过,第一()是函数定义,而第二个()代表执行第一括号里面的内容
 3.优先表达式:由于Javascript执行表达式是从圆括号里面到外面,所以可以用圆括号强制执行声明的函数。
   (function(){
 //.....
}())
 4.Void操作符 用void操作符去执行一个没有用圆括号包围的一个单独操作数
    void function(){ 
  alert(1); 
    }()
 
这三种方式是等同的,hedger wang因为个人原因比较喜欢第3种,
而在实际应用中我看到的和使用的都是第2种以及上面提到的 new Funtion( )的定义方式。


灵活的配合var关键字,匿名函数可以有效的保证在页面上写入Javascript,
而不会造成全局变量的污染。也能增加代码的可读写行,减少代码量,提高程序的性能。
原创粉丝点击