プログラミング言語において引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決する関数のことである。私もこんなので説明されてもわかりません。今は理解できてますので見て行きましょう。クロージャとは関数を返す関数で、次のような関数を指します。関数を返すのははじめの一回のみです。意味不明と思われるかもしれませんね。worldとなります。意味不明な形で見たことある人は少ないと思います。closure=(function(){略})()の(function(){})の部分から説明していきます。いうかこれぐらいしか説明がない...これはfunction(){}という無名関数を()でくくり、最後に()をつけて実行しています。()でくくる理由は知ってて当然?初級者のためのJavaScriptで使う即時関数(function(){...})()の全てに書いてあります。興味がある人は見てみてください。function(greet){略}をclosureに代入する。ここで疑問に感じる人がいればすごいと思います。私はこの手のもので1度も疑問に感じたことがありません。何が疑問かというと2ですね。function(greet){略}が返ってきたはずなのにnameが使えるのかというところです。当然といえば当然ですね。nameはfunction(greet){}内で定義されてないのですから。できるのかというとちょっと見方を変えればわかります。