公開日:2007.09.06
オブジェクト - 基本
新しい技術を学ぶ際には基本をしっかり押さえる事が大変重要です。 流行りのテクニックを紹介する前にまずは、今までのJavaScriptから一歩踏み込んで、 Object指向JavaScriptをマスターしましょう。 今後数回に分けてオブジェクト指向JavaScriptについて説明していきたいと思います。 既にオブジェクト指向でJavaScriptを扱えるって人は、スルーして頂いて結構です。
データ型
JavaScriptでは変数を宣言する時にデータ型は指定しません。 しかし、実際にはデータには型が存在します。 以下がJavaScriptで変数にいれる事ができるデータ型となります。
基本型
- 数値(Number)
- 文字列(String)
- 論理値(Boolean)
参照型
- オブジェクト(Object)
- 関数(Function)
これらのデータ型ついてはtypeofという演算子を以下のように用いる事で確認ができます。
alert(typeof 'これは文字列');// string と表示
alert(typeof 100);// number と表示
alert(typeof true);// boolean と表示
alert(typeof function(){});// function と表示
基本型、参照型共にオブジェクトです。 何が違うかというと基本型は値そのものを変更する事ができません。 その為、関数を呼び出す時、基本型は値渡しになるところが参照型の場合は参照渡しとなります。
ここでは参照型と呼ばれるオブジェクトと関数についてのみ掘り下げていきたいと思います。
オブジェクト基本
JavaScriptにはJava等でいうクラスという仕様がありません。(概念としてはあります) その為、オブジェクトは実行時に作成される実態'そのもの'のみを指します。 インスタンスのみがあるというイメージでしょうか。
またオブジェクトというのは一般的にプロパティとメソッドを持ちますが JavaScriptではオブジェクト毎に後からプロパティを設定します。 以下のように記述します。
var object = new Object();
object.prop1 = '属性1';
object.name = '名前';
prop1 や name なんてどこにも宣言していませんがエラーとはなりません。 上記を以下のように書き換える事もできます。
var object = new Object();
object['prop1'] = '属性1';
object['name'] = '名前';
ここで登場した new という演算子ですが java や c++ 等ではおなじみのオブジェクト(インスタンス)を作成するという命令です。Object というのは一番基本となるオブジェクトと同様のオブジェクトを作成しろという意味です。まぁクラスのようなものですね。
またオブジェクトの作成方法は他にもあります。
var object = {};
これと前述の var object = new Object(); はほぼ同義です。基本オブジェクトとなるObjectはプロパティを持ちません。
Object以外にもnew演算子によってインスタンス化できるオブジェクトがいくつかあります。代表的なものとしてはArray, Math, String, Date ...等があります。このようなオブジェクトをビルトインオブジェクトと呼びます。
var ary = new Array(1,5,'abc');
var today = new Date();
のようにする事で同様にインスタンスを得ることができます。
Object以外のオブジェクトはディフォルトでいくつかのプロパティを持っているので各プロパティを参照したりメソッドを呼び出したりすることができます。
var today = new Date();
alert(today.getDate());
またオブジェクトは新規に定義する事もできますが、それについてはまた後日お話します。では今回はここまで。
まとめ
- オブジェクトは new 演算子によって作成する事ができる
- オブジェクトのプロパティはオブジェクト作成後設定する
- 最初から利用できるオブジェクトをビルトインオブジェクトと呼ぶ
