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

xiaoxiao2021-02-28  96

在开源的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, 而不会造成全局变量的污染。也能增加代码的可读写行,减少代码量,提高程序的性能。
转载请注明原文地址: https://www.6miu.com/read-60263.html

最新回复(0)