「大域名前空間を汚しまくっているJavaScriptライブラリを単一名前空間に押し込める方法」で、無作法に大域名前空間を汚しているJavaScriptライブラリをなんとかする方法を紹介しました。
それとは違った状況で、意図的に大域名前、例えば関数myfuncを定義したいとしましょう。普通に次のように書けばよさそうです。
function myfunc() { // ... }
しかし、myfuncを定義するための補助関数が大量にあるとします。そして、それらの補助関数は利用者が呼ぶ必要はないとしましょう。補助関数達を大域名前空間に定義はしたくないですよね。
既存のライブラリでどうやっているか眺めてみたら、次のように書けばよいみたいですね。
// 大域的名前 var myfunc; (function () { // 補助関数 function sub(arg) { // ... } // .... // 目的の関数をここで定義する myfunc = function() { // ... } })();