ネームスペースを作る
YAHOO.namespace()で一発、とか思っていたら、最初に"YAHOO"が。
YAHOO.namespace("hoge.foo"); // "hoge.foo"ではなく"YAHOO.hoge.foo" ができる
というわけで、自作しました。
/** * ネームスペースを作成する。 * @param {String} path 作成するネームスペース。"."区切りで指定。 */ function namespace( path ) { var strs = path.split("."); var c = (function () { return this; })(); // グローバルオブジェクトを取得。 for(var i=0;i<strs.length;i++) { if ( typeof c[strs[i]] == "undefined" ) { c[strs[i]] = {}; } c = c[strs[i]]; } } // ネームスペースを作る。 namespace( "hoge.foo.a" ); namespace( "hoge.foo.b" ); stdout.innerHTML += typeof hoge.foo + "<br/>"; stdout.innerHTML += typeof hoge.foo.a + "<br/>"; stdout.innerHTML += typeof hoge.foo.b + "<br/>";