JavaScript の関数リテラルとクロージャ

JavaScript の関数リテラルとクロージャ (Piro さんの解説)
4
テラマコ @teramako

匿名関数とクロージャとラムダ関数の違いを誰か分かり易く教えてくれ。

2010-01-18 17:04:39
Piro🎉"シス管系女子"累計4万部突破!!🎉 @piro_or

@teramako JavaScriptではラムダ=関数リテラル(関数宣言やnew Function()ではなく、a=function(){return...}なやつ)という説明がよくなされるみたいですね

2010-01-18 17:18:14
テラマコ @teramako

@piro_or 関数リテラルか、なるほど。関数リテラルで名前を省略すると匿名関数となり、また、関数内で使用されればクロージャともなるって感じでしょうか。

2010-01-18 20:39:47
Piro🎉"シス管系女子"累計4万部突破!!🎉 @piro_or

JavaScriptの場合、関数宣言または関数リテラル(=ラムダ)を使うと、実行されるコード+それが定義された時の変数スコープがセットで保持される。これがクロージャ。

2010-01-18 20:44:48
Piro🎉"シス管系女子"累計4万部突破!!🎉 @piro_or

new Function()の時はクロージャは作られないというのは豆知識ですね。

2010-01-18 20:47:36
テラマコ @teramako

@piro_or ありゃ...ああそうか。普通に関数宣言してもクロージャと呼ばれますもんね、関数リテラルとは無関係でしたね。

2010-01-18 20:48:23