IT戦記 このページをアンテナに追加 RSSフィード Twitter

2008-02-08

(function(){})() と function(){}()

自分用メモ

// 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() {} () }

DQNEODQNEO 2011/07/04 03:10 今更ながら、これを見たらよく理解できました。
ありがとうございました。

hako584hako584 2011/11/19 03:23 function() {} で式でなく文として解釈される → function() {}()、と書くとエラーになる、ってことですね。
(function() {})() は当たり前に使ってたけれど、改めて説明されるとわかりやすいですよね。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。