[JavaScript General] JavaScript で名前空間を作成する
クラス名が競合しないようパッケージにまとめる。
ES5 までは、空のオブジェクトを利用して「名前空間のようなもの」を作成していた。
var MyApp = MyApp || {};
MyApp.Member = function(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
};
MyApp.Member.prototype = {
getName: function() {
return this.lastName + ' ' + this.firstName;
}
};
var member = new MyApp.Member('タロウ', 'ヤマダ');
console.log(member.getName());
これからは ES2015 のモジュールインポートを利用できる。
ブラウザ非対応のため Babel などのトランスパイラの利用が前提。
import * as MyApp from "./lib/myApp.es6.js";
console.log("2π = " + MyApp.sum(MyApp.pi, MyApp.pi));
import * as math from "./lib/math.es6.js";
console.log("2π = " + math.sum(math.pi, math.pi));