JavaScriptのクロージャ
JavaScriptのクロージャをユズノハのことばで言うと
関数が定義された環境を保持できる仕組み。かな。
関数(func2)が定義された環境(func1)。
ユズノハはJavaScriptのクロージャを勉強していて
鈴木光司のリングを連想した。
リング3部作をざっくり説明すると、
現実世界でシミュレートしているリングワールドで生まれたタカヤマリュウジを
リングワールドから現実世界に召喚して、現実世界に蔓延しているリングウィルスの抗体をタカヤマリュウジから取り出す話。
ここで、タカヤマリュウジがリングワールドのクロージャになるみたいな。
同様にヤマムラサダコもクロージャだ。
以下サンプルコード。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
let caller = (f) => { return f(); } function func1(){ let x = 10; let func2 = () => { return x++; }; return func2; } let f = func1(); let g = func1(); console.log(caller(f)); console.log(caller(f)); console.log(caller(g)); console.log(caller(f)); |