プログラム言語 クロージャ
概要
※関数内でローカル変数を参照している関数
//クロージャ(ローカル変数:prmIntを参照している)
function Closure(prmInt) {
return function() {
alert(–prmInt); //-1
}
}
function Closure(prmInt) {
return function() {
alert(–prmInt); //-1
}
}
var myFunc1 = Closure(10); //関数Closureそのものを格納
var myFunc2 = Closure(10); //関数Closureそのものを格納
alert(myFunc1);
//myFunc1(=Closure)を実行して表示⇒9(prmInt初期値:10)
alert(myFunc1);
//myFunc1(=Closure)を実行して表示⇒8(prmInt初期値:9)
alert(myFunc2);
//myFunc2(=Closure)を実行して表示⇒9(prmInt初期値:10)
var Timer = window.setTimeout("Closure()",1000)
//1秒後にClosure()を実行・・・○ 引数のない関数はこれでOK
var Timer = window.setTimeout("Closure(10)",1000)
//1秒後にClosure(10)を実行・・・×
var Timer = window.setTimeout(function(){
Closure(10);
} ,1000)
//1秒後にClosure(10)を実行・・・○