クラスをパッケージ(名前空間)にまとめる目的BarClassとBazClassという2つのクラスをFooPackageにまとめる。 ファイル構造
ソースコードFooPackage.BarClass.jsvar FooPackage = FooPackage || {}; (function(FooPackage) { var BarClass = (function() { function BarClass(mesg) { this.mesg = mesg; } BarClass.prototype.getMesg = function() { return this.mesg; }; BarClass.prototype.getBazMesg = function() { var baz = new FooPackage.BazClass("DEBUG: Foo::Baz From Bar"); return baz.getMesg(); }; return BarClass; })(); FooPackage.BarClass = BarClass; })(FooPackage); FooPackage.BazClass.jsvar FooPackage = FooPackage || {}; (function(FooPackage) { var BazClass = (function() { function BazClass(mesg) { this.mesg = mesg; } BazClass.prototype.getMesg = function() { return this.mesg; }; return BazClass; })(); FooPackage.BazClass = BazClass; })(FooPackage); index.html<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <script src="FooPackage.BarClass.js"></script> <script src="FooPackage.BazClass.js"></script> <script> var bar = new FooPackage.BarClass("DEBUG: Foo::Bar"); var baz = new FooPackage.BazClass("DEBUG: Foo::Baz"); console.log(bar.getMesg()); console.log(baz.getMesg()); console.log(bar.getBazMesg()); </script> </head> <body> <h1>JS</h1> </body> </html> index.htmlの実行結果DEBUG: Foo::Bar DEBUG: Foo::Baz DEBUG: Foo::Baz From Bar サブパッケージを作成するBarClassをサブパッケージにまとめる場合は、上のコードを以下のように変える。 FooPackage.SubPackage = FooPackage.SubPackage || {}; FooPackage.SubPackage.BarClass = BarClass; |
|