JavaScript第7章関数式

1970 ワード

  • 関数を定義する2つの方法
  • 関数宣言
        //    
        function name(){
            
        }
    
  • 関数式
        //    
        var funtionname=function(){   //    ,     ,       
            
        }
        //  
    
  • 再帰
  • 再帰関数の場合、1つの関数が名前で自分を呼び出す場合
    ```
    function factorial(num){
        if(num<=1){
            return 1
        }else{
            return num*factorial(num-1)
        }
    }
    //  argumente.callee()            
     function factorial(num){
        if(num<=1){
            return 1
        }else{
            return argumente.callee(num-1) 
        }
    }
    ```
    
  • クローズド
  • クローズドとは、他の機能領域にアクセスする権限を持つ変数の関数
  • を意味する.
  • ブロックレベル作用領域
    function(){
        
    }
    //         ()      ,      
    (function (){
        //        
    })()
    
  • を模仿する.
  • プライベート変数
    function MyObject(){
        //         
        var privateVariable=10;
        
        function privateFunction(){
            return false
        }
        
        //     
        this.publicMethod=function (){
            privateVariable++
            return privateFunction()
        }
    }
    //                         
    
  • 静的プライベート変数
    (function(){
       //         
        var privateVariable=10;
        
        function privateFunction(){
            return false
        }
        //     
        MyObject=function(){
            
        }
        //   /    
        MyObject.prototype.publicMethond=function(){
             privateVariable++
            return privateFunction()
        }
        
    })()
    
  • モジュールモード
  • モジュールモードは、一例にプライベート変数と特権方法を追加することによって
    var singleton=function(){
        name:value,
        methon:function(){
            //         
        }
    }
    
    //     
    var singleton=function(){
         //         
            var privateVariable=10;
            
            function privateFunction(){
                return false
            }
        return {
            publicProperty:true,
            publicMethond:function(){
                 privateVariable++
                return privateFunction()
            }
        }
    }
    
  • である.