よく見る、(function(){})();って、なんだろうって素朴に思って、調べてみた。

この意味を知りたくて調べてみると・・・

<pre>// JavaScript でクロージャを書くときこう書く事が多い
(function() {})()
// 何故なら
// function() {}()
// と書くと
// function() {} が式ではなく、文として解釈されてしまうからだ。
// 文として解釈されないためには、文の途中(最初以外)に function と書いてやる必要がある
// なので、まず開きカッコを書いてやる。
(
// の後に
function() {}
// と書いてやると function は式になる
)
// 正確には、カッコの対は The Grouping Operator という演算子である。
// カッコ以外にも
var a =
// のように代入演算子のあとでもいい
function() {}
// つまり、以下のような記述も可能である。
var b = function() {} ()
// また、以下のような記述も可能である。
var obj = { a: function() {} () }
// というわけで、以下の method プロパティは関数ではないので注意すること
var obj = { method: function() {} () }</pre>

こういう意味らしい。

んじゃ、クロージャーってなんだろうって、調べてみると

クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決する関数のことである。

ということみたい。

プログラム言語って、奥が深い。

参考にしたサイト

IT戦記

[JavaScript] 猿でもわかるクロージャ超入門 まとめ

関連記事