Singleton on JavaScript

ためになるなぁ!。サンプルをもう少し「private」と「public」に強調して書くと…、

var MySingleton = new function() {
	var testVar1 = 0;		//private
	var testVar2 = "unko";		//private
	this.testVar3 = "public";	//public
	
	this.getVar1 = function() {	//public
		return getVar2();
	};
	function getVar2() {		//private
		return testVar2;
	}
};

alert(MySingleton.getVar1()); // "unko"
alert(MySingleton.getVar2()); // リファレンスエラー

関数のにこめは、今風に書くと

	var getVar2 = function() {
		return testVar2;
	}

と同じです。例えばこれの var を忘れると大変なことになるというか、グローバルの getVar2 を上書きします。

別にこれが目指すべき最高のスタイルってことではなくて、グローバス変数やら関数をぼこぼこ作るくらいだったら、これなら簡単にできるしやってみたらどう?。ってことだと思います。小さな一歩でよりよい世界。