タグ

2015年9月14日のブックマーク (1件)

  • クロージャ再考 - Qiita

    はじめに 中級以上のJavaScriptプログラマを目指す上で、避けては通れない壁の一つは クロージャ(Closure) だと思います。「関数の外側で定義された変数を持つ関数の実行時オブジェクトです」とさらっと説明されることが多いですが、シンプルなだけに理解したつもりになって実は使いどころが分からないってことになりがちです。きちんと自分のものにするには基から丁寧に理解しないとダメですねってことで、今回はクロージャについてその背景から調べてみたいと思います。 歴史と語源 まずは歴史から振り返ってみたいと思います。Wikipediaによるクロージャの解説では、以下のような説明があります。 クロージャの概念は、1960年代にラムダ計算の機械的な実行モデルを構築するために生み出され、1970年に 静的スコープ と 第一級関数 をサポートするPALプログラミング言語で最初に実装された。1964年、

    クロージャ再考 - Qiita
    pipehead
    pipehead 2015/09/14
    束縛変数, 自由変数, 環境, 第一級関数, 高階関数, レキシカルスコープ (静的スコープ), ダイナミックスコープ, アクティベーションレコード (スタックフレーム), コールスタック, FUNARG 問題, クロージャ, モジュールパターン