IT用語: クロージャ(Closure)とは|関数が変数を「覚える」仕組み
関数が定義された時点のスコープの変数を参照し続けるクロージャの仕組みとカウンターなどの実用例を解説。
クロージャとは
クロージャは、「関数が定義された時点の外側のスコープ(変数環境)を記憶し、後からでもその変数にアクセスできる」という性質を持つ関数です。JavaScriptをはじめ多くの言語でサポートされており、状態の隠蔽やファクトリ関数などに活用されます。
シンプルな例:カウンター
function makeCounter() {
let count = 0; // 外側の変数
return function() {
count++; // 内側の関数がcountを「覚えている」
return count;
};
}
const counter = makeCounter();
counter(); // → 1
counter(); // → 2
count は外から直接変更できません。これがカプセル化(情報隠蔽)の効果です。
なぜ重要なのか?
ReactのuseStateフックやイベントハンドラーなど、現代のフロントエンド開発はクロージャを多用しています。「なぜこの変数が古い値を持っているのか?」というバグの多くはクロージャの仕組みを理解していないことが原因です。
関連する用語 (プログラミング)
全33件を見るJavaScript (JS)
Webブラウザ上で動きのある表現(アニメーション等)を実現するためのプログラミング言語。
IT用語: ソフトウェアテストの種類|単体・結合・E2Eテストの違い
ユニットテスト・結合テスト・E2Eテストの役割とテストピラミッドの考え方を解説。
ESLint
JavaScriptとTypeScriptのコードを静的解析し、潜在的なバグや規約違反を検出するリンター。プロジェクト全体で一貫したコードスタイルを強制し、コードレビューの負担を軽減する。
Vite(ヴィート)
Vue.jsの作者が開発した次世代フロントエンドビルドツール。ネイティブESモジュールを活用した超高速な開発サーバー起動とHMR(ホットモジュールリプレース)を実現する。
IT用語: 型安全性(Type Safety)とは|TypeScriptが防ぐバグの種類
コンパイル時に型の不一致を検出する「型安全性」の概念と、JavaScriptからTypeScriptへの移行がなぜ有効なのかを解説。
Web Components
ブラウザネイティブの技術でカプセル化された再利用可能なUIコンポーネントを作成する仕様。Custom Elements・Shadow DOM・HTML Templatesの3つの技術で構成され、フレームワーク非依存で動作する。