var SM = (function{ ... }()) で宣言された変数に、メソッドが生成される仕組み・条件が知りたい
var SM = (function () {
var my = {};
my.get = function (key) {
return localStorage.getItem(key);
}
my.put = function (key, value) {
return localStorage.setItem(key, value);
}
my.delete = function (key) {
return localStorage.removeItem(key);
}
return my;
}());
このコードを実行した後に
console.dir(SM);
とするとSMのメソッドとして get()
put()
delete()
の3つが定義されていることが
わかりますが、これは何故でしょうか。
Javaとかの感覚では
SM.my.get(key)
ならわかるのですが、そのままSMという変数にこのメソッドが生えていることが
難しく感じました。
なぜこのような挙動をするのか、ご存知の方、教えていただけないでしょうか。
ちなみにこのコードはこちらでGoogleChromeExtensionのチュートリアルとして紹介されていました。
よろしくお願い致します。