jsの中で特殊な情勢の関数-匿名の関数の応用

4652 ワード

javascriptの匿名関数は、匿名関数とは何ですか?
匿名関数とは、関数名がないことです.デモコード:
 
1 <script>
2     function(x,y){
3         return x+y   //          ,     ,          。     ?
4     }                //       ,               ,            
5 </script>
 
 
 
javascriptの関数も一つのデータタイプですが、このような特殊なタイプは二つの重要な特性があります.
1.彼らが含まれているのはコードです.
2.彼らは実行可能です.デモコード:
 
 1 <script>
 2       var text = function(x,y){
 3           return x+y;       //           text,                  
 4       }
 5       alert(typeof text)   //        ,=>function               
 6       alert(text(1,2))     //                  。=>3
 7       var text1 = text;   //                            
 8       alert(text1(4,5))   //             =>9
 9 
10 </script>
 
匿名関数は、パラメータとして他の関数に伝えられます.受信者関数は、伝達された関数によっていくつかの機能を完成することができます.
まず、匿名関数ではないコールバック方法のデモコードを理解します.
 1 <script>
 2      function calc(x,y){
 3          return x()+y();    // text1        calc    x       
 4      }                     // text2        calc    y       
 5      function text1(){
 6          return 1
 7      }
 8      function text2(){
 9          return 2
10      }
11      alert(calc(text1,text2))     //=>3
12 
13 </script>
また、匿名関数のコールバック方法のデモコードを見てください.
1 <script>
2      function calc(x,y){
3          return x()+y();    // text1        calc    x       
4      }                     // text2        calc    y       
5      alert(calc(function(){return 1},function(){return 2}))
6              //                x,y   
7 </script>
コールバック関数の実列 デモコード:
 1 <script>
 2         function addOne(a){
 3             return a+1
 4         }
 5         function calc(a,b,c,callback){
 6             var arr=[];      //        
 7             for(var i = 0 ;i<3;i++){    //    
 8                 arr[i] = callback(arguments[i]*2)  // arguments           2,   addOne                     
 9             }
10             return arr;
11         }
12          alert(calc(1,2,3,addOne))     //         =>3,5,7
13          alert(calc(2,3,4,function(a){return a+1}))//                //    5,7,9
14 </script>
コールを使ってもいいです.コールバック関数の文法は、関数名.コール(関数名、パラメータ1、パラメータ2)
アプリでコールバック関数ができます. 構文は.最初の音の名前の配列var=[パラメータ1,パラメータ2]です.      関数名.appy(関数名,a)
自己変調の匿名関数は、すぐに呼び出される匿名関数とも呼ばれる.
利点: 自己変調の匿名関数を使用すると、大域変数は生成されません.
短所:関数は繰り返し実行できません.一回性初期化の作業を実行するのに適しています.    デモコード:
1 <script>
2     (function(x,y){
3         alert(x+y)
4     })(1,2)
5 </script>