Water Sunlight

軽量プログラミングの文法 - JavaScript/Python

ユーザ用ツール

サイト用ツール


js:function:closure

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
js:function:closure [2021/04/12 14:50]
tanaka 作成
js:function:closure [2021/05/24 09:04] (現在)
y2sunlight [クロージャとは]
行 2: 行 2:
  
  --- //[[http://www.y2sunlight.com/water|y2sunlight]] 2021-04-05//  --- //[[http://www.y2sunlight.com/water|y2sunlight]] 2021-04-05//
 +
 +===== 高階関数とは =====
 +関数の引数または戻り値として、関数を使用できる関数のことを高階関数と呼びます。
 +\\
  
 ===== クロージャとは ===== ===== クロージャとは =====
  
-ローカル変数を参照している関数内関数です。\\ +クロージャとは、外側のローカル変数を参照している関数内関数の事です。\\ 
-通常、クロージャは戻り値として用されるので、高階関数(関数、戻り値に関数を扱える)の内部に存在します。\\ +通常、クロージャは関数の戻り値として使用されるので、高階関数の内部に存在します。\\ 
-即ち、クロージャとは高階関数内のローカル変数を参照している関数内関数であり、高階関数によって戻り値として設定されます。+即ち、クロージャとは高階関数内のローカル変数を参照している関数内関数であり、高階関数戻り値として設定されます。
  
-=== 例 ===+<sxh javascript;title:Example> 
 +function higher(n) { 
 +    var count n; 
 +     
 +    function closure() { 
 +        return count++; 
 +    } 
 +    return closure; 
 +}
  
-<code javascript> +var myClosure = higher(100); 
-TODO: +console.log(myClosure());    // 100 
-</code>+console.log(myClosure());    // 101 
 +console.log(myClosure());    // 102 
 +</sxh>
  
 ''higher()'' はクロージャ(''closure()'')を返す高階関数で、''higher()'' のローカル変数(''count'')はクロージャが存在し続ける限り参照され続ける(捉えられ続ける)。この様にクロージャはオブジェクトの様に振舞います。 ''higher()'' はクロージャ(''closure()'')を返す高階関数で、''higher()'' のローカル変数(''count'')はクロージャが存在し続ける限り参照され続ける(捉えられ続ける)。この様にクロージャはオブジェクトの様に振舞います。
js/function/closure.1618206604.txt.gz · 最終更新: 2021/04/12 14:50 by tanaka