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');
}