source code:


// クラスとオブジェクトのちがい

// クラス
function MessageCard(message){
	this.setMessage(message);
}

// クラスメソッド
MessageCard.setFormat = function(formatString){
	MessageCard.format = formatString;
};

// インスタンスメソッド
MessageCard.prototype.setMessage = function(message){
	this.message = message;
};

// インスタンスメソッド
MessageCard.prototype.getFormattedMessage = function(){
	return MessageCard.format + this.message + MessageCard.format;
};

function sampleMessageCard(){

	// オブジェクトを生成
	var m1 = new MessageCard("hello");
	var m2 = new MessageCard("goodbye");

	// クラスに値をセット
	MessageCard.setFormat("");
	
	print("m1=" + m1.getFormattedMessage() + ", m2=" + m2.getFormattedMessage() + '\n');

	// m1 オブジェクトに値をセット
	m1.setMessage("こんにちは");
	print("m1=" + m1.getFormattedMessage() + ", m2=" + m2.getFormattedMessage() + '\n');

	// m2 オブジェクトに値をセット
	m2.setMessage("さようなら");
	print("m1=" + m1.getFormattedMessage() + ", m2=" + m2.getFormattedMessage() + '\n');

	// クラスに値をセット
	MessageCard.setFormat("*****");
	print("m1=" + m1.getFormattedMessage() + ", m2=" + m2.getFormattedMessage() + '\n');
}