javascriptでの環境依存変数の管理方法

javascriptを使用しているときに、環境に依存する設定(例えばコンテキストパス等)が出てくる。
そんな時に、いろんなソースに環境設定を記述していては、後でソースを見直したときに分かりづらくなる。

今回、そんな環境設定を安全に管理しておくためのJavascriptを考えてみた。

env.js

/**
 * 環境設定<br />
 */
var Env = function() { };

/**
 * 環境設定を初期化する<br />
 */
Env.init =  function(envType) {
	
	// カプセル化し、他からアクセス不可能にする。
	var _env = null,
		ENV_TYPE_DEVELOPMENT = '0',
		ENV_TYPE_STAGING = '1',
		ENV_TYPE_PRODUCT = '2';
		
	// 環境ごとの環境設定
	var _settings = {
		local: {
			contextPath: '/',
			ajaxTimeout: 60000,
			debug: true
		},
		development: {
			contextPath: '/dev',
			ajaxTimeout: 60000,
			debug: true
		},
		staging: {
			contextPath: '/staging',
			ajaxTimeout: 60000,
			debug: false
		},
		product: {
			contextPath: '/product',
			ajaxTimeout: 20000,
			debug: false
		}
	}

	// 環境ごとに読み込む設定を変更する。
	if(envType == ENV_TYPE_DEVELOPMENT) {
		_env = _settings.development;
	} else if(envType == ENV_TYPE_STAGING) {
		_env = _settings.staging;
	} else if(envType == ENV_TYPE_PRODUCT) {
		_env = _settings.product;
	} else {
		_env = _settings.local;
	}
	
	// 各変数のアクセッサー。
	this.getContextPath = function() {
		return _env.contextPath;
	};
	this.getAjaxTimeout = function() {
		return _env.ajaxTimeout;
	};
	this.isDebug = function() {
		return _env.debug;
	};
};

環境設定の呼び出し方法は下記。

<html>
<head>
<script type="text/javascript" src="./env.js"></script>
<script type="text/javascript">
// 開発環境用の設定を行う。
Env.init('0');
// 環境設定変数の取り出し。
alert(Env.getContextPath());
</script>
</head>
<body>
...
</body>
</html>

こうする事で、環境依存の変数を一元管理し、後は、envType等はJSPで変数を取得すればよい。