このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
js:function:closure [2021/04/12 14:50] tanaka 作成 |
js:function:closure [2021/05/24 09:04] (現在) y2sunlight [クロージャとは] |
||
---|---|---|---|
行 2: | 行 2: | ||
--- // | --- // | ||
+ | |||
+ | ===== 高階関数とは ===== | ||
+ | 関数の引数または戻り値として、関数を使用できる関数のことを高階関数と呼びます。 | ||
+ | \\ | ||
===== クロージャとは ===== | ===== クロージャとは ===== | ||
- | ローカル変数を参照している関数内関数です。\\ | + | クロージャとは、外側のローカル変数を参照している関数内関数の事です。\\ |
- | 通常、クロージャは戻り値として利用されるので、高階関数(関数、戻り値に関数を扱える)の内部に存在します。\\ | + | 通常、クロージャは関数の戻り値として使用されるので、高階関数の内部に存在します。\\ |
- | 即ち、クロージャとは高階関数内のローカル変数を参照している関数内関数であり、高階関数によって戻り値として設定されます。 | + | 即ち、クロージャとは高階関数内のローカル変数を参照している関数内関数であり、高階関数の戻り値として設定されます。 |
- | === 例 === | + | <sxh javascript; |
+ | function higher(n) { | ||
+ | var count = n; | ||
+ | |||
+ | function closure() { | ||
+ | return count++; | ||
+ | } | ||
+ | return closure; | ||
+ | } | ||
- | <code javascript> | + | var myClosure = higher(100); |
- | TODO: | + | console.log(myClosure()); |
- | </code> | + | console.log(myClosure()); |
+ | console.log(myClosure()); | ||
+ | </sxh> | ||
'' | '' |