このページの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> | ||
| '' | '' | ||