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のチュートリアルとして紹介されていました。

よろしくお願い致します。