- Object() (e3/N2)
- o = new Object(); の形式でオブジェクトを生成する。
- object
- オブジェクト。
- object.constructor (e4/N3)
- オブジェクトのコンストラクタ(生成関数)。
- Object.prototype.newName (e4/N3)
- このオブジェクトタイプに新しい属性を定義する。NumberやStringや、Functionで作成したユーザー定義オブジェクトなど、すべてのオブジェクトタイプに対して使用可能。
Object.prototype.newZokusei = null; oo = new Object(); oo.newZokusei = "xxx";
- object.eval(string) (e4/N3)
- stringをJavaScriptコードと見なして実行する。N4からはビルトイン関数として実装されている。
- object.toString([radix]) (e3/N3)
- オブジェクトを文字列に変換する。オブジェクトが数値の場合はradix進数(2〜16)で変換する。ただし、IE3ではradixを未サポート。文字列への変換規則は LANGUAGE="..." に指定したJavaScriptのバージョンで動作が異なるので注意が必要。
- object.toSource() (N45)
- オブジェクトを文字列に変換する。toString()だと [object Object] としか表示されなかったところを、{name:"Tanaka", age:26} や { "AA", "BB", "CC" } などのように、オブジェクトのプロパティまで表示するよう改善された。
JavaScriptでは標準で用意されているオブジェクトのほか、以下のようにしてユーザー定義のオブジェクトを生成することができる。function getName() { return(this.name); } function getAge() { return(this.age); } function Person(name, age) { this.name = name; this.age = age; this.getName = getName; this.getAge = getAge; } p = new Person("Suzuki", 28); document.write(p.getName(), "<BR>"); document.write(p.getAge(), "<BR>");function宣言を上記のように用いると、Personという型(クラス)が定義される。これはnameとageをプロパティとして持ち、getName()とgetAge()をメソッドとして持つ。Person()関数はPerson型の生成関数(コンストラクタ)として扱われる。Personオブジェクトを使用するには new 演算子を用いる。IE4.0/NN4.0以降では、下記のようにして、簡易的にオブジェクトを生成することができる。
var xx = { name: "Suzuki", age: 24 }; document.write(xx.name + "<BR>"); document.write(xx.age + "<BR>");JavaScript1.3ではさらに、クラスの継承を実現するためのcall()とapply()が追加された。以下のいずれかの形式を用いることで、PersonクラスのサブクラスMember1やMember2を生成することができる。
function Member1(name, age, id) { this.id = id; Person.call(this, name, age); } function Member2(name, age, id) { this.id = id; Person.apply(Person, arguments); }