プログラミング言語において引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決する関数のことである。関数とそれを評価する環境のペアであるともいえる。この概念は少なくとも1960年代のSECDマシンまで遡ることができる。
まれに、関数ではなくとも、環境に紐付けられたデータ構造のことをクロージャと呼ぶ場合もある。
JavaScriptでのクロージャー
var cl = function() {
var counter = 0;
return function() {
counter += 1;
return counter;
};
};
var c = new cl();
alert(c()); //1
alert(c()); //2
alert(c()); //3
0 件のコメント:
コメントを投稿