このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

JavaScriptで少数の大域的名前だけを定義したいとき

大域名前空間を汚しまくっているJavaScriptライブラリを単一名前空間に押し込める方法」で、無作法に大域名前空間を汚しているJavaScriptライブラリをなんとかする方法を紹介しました。

それとは違った状況で、意図的に大域名前、例えば関数myfuncを定義したいとしましょう。普通に次のように書けばよさそうです。

function myfunc() {
  // ...
}

しかし、myfuncを定義するための補助関数が大量にあるとします。そして、それらの補助関数は利用者が呼ぶ必要はないとしましょう。補助関数達を大域名前空間に定義はしたくないですよね。

既存のライブラリでどうやっているか眺めてみたら、次のように書けばよいみたいですね。

// 大域的名前
var myfunc;

(function () {
  // 補助関数
  function sub(arg) {
    // ...
  }
  // ....

  // 目的の関数をここで定義する
  myfunc = function() {
    // ...
  }
})();