このMyData配列では、MyDataを扱うのに必要なものがすべて揃っていました。必要な値も、必要な処理も、みんなMyData自身に収めてありました。これが、
「オブジェクト」なのです。すなわち、「自分自身で完結しており、自分自身が必要とするものをすべて自身の中に持っている」という、そういうプログラムのまとまり。それがオブジェクトと呼ばれるものなのです。
「でも、これって配列でしょ?」――そうです。実は、JavaScriptでは、「オブジェクトとは、配列のこと」なのです。と断言してしまうと語弊がありますが、実質、そう考えて間違いありません。唯一の違いは、
new Array()
こんな具合にして配列を用意する代りに、
new Object()
このようにして用意するようにすれば、もうそれでMyDataはオブジェクトになります。JavaScriptのオブジェクトは、ほんとうに配列と紙一重の差しかないのです。ですから、オブジェクトと言うものをイメージするとき、配列を思い浮かべればだいたい間違いない、といってよいでしょう。
オブジェクトでは、自身に用意されている「値」のことを
「プロパティ」といいます。また、自身に用意されている「処理」のことを
「メソッド」といいます。例えば、先のMyDataオブジェクトでは、「name」「age」「mail」といったプロパティと、「showData」というメソッドが用意されていた、というわけです。
そして。
実を言えば、JavaScriptでは、
「すべての値は、オブジェクトである」のです。下のリストにあげたサンプルを見てください。これは、100という数字をalertで表示するものです。が、alertの引数がちょっと変ですね?
n.toString()というものが記述されてます。この「toString」というのは、自身をテキストとして表現したものを返すメソッドなのです。つまり、これはnという数値のメソッドを呼び出しているものだったのです。
nには、100という整数が入っています。ということは? 100という値のtoStringを呼び出していたということになります。つまり、100という値には、toStringというメソッドが用意されていたのです。100は、タダの数字ではなく、オブジェクトだったのですね。
このように、JavaScriptでは、すべての値はオブジェクトとして用意されています。JavaScriptは、実は「非常に本格的なオブジェクト指向言語」だったのですよ。