オブジェクトのprototypeを試す

 既存のオブジェクトに新たな機能を追加することができます。しかも後から機能を置き換えることも可能です。呼び出すメソッドの名前を変更しないでその機能だけを更新できるのでソースが読みやすくなります。
 ここではStringオブジェクトに文字を赤くする機能を追加し、その後似たような色(crimson)に置き換えています。

◆スクリプト

var str1 = new String("赤色")
var str2 = new String("赤色")

function str_red()
{
  return this.fontcolor('red')
}

function fake_red()
{
  return this.fontcolor('crimson')
}

String.prototype.red = str_red
document.write("str1=",str1.red(),"<BR>")
document.write("str2=",str2.red(),"<BR>")

str1.red = fake_red
document.write("ここでstr1のstr_red()をfake_red()に置き換えた<BR>")
document.write("str1=",str1.red(),"<BR>")
document.write("str2=",str2.red())

◆実行結果