オブジェクト
本セクションは、次のような構成になっています。
Rogue Wave Script オブジェクト
オブジェクトとは、定義済みのプロパティーやメソッドを含まず (
toString method を除く)、新しいプロパティーやメソッドを追加可能な値のことです。 新しい空のオブジェクトは、オブジェクト・コンストラクターを使って作成することができます。 たとえば、次のプログラムでは新しいオブジェクトを作成し、そのオブジェクトを変数
myCar に保存して、プロパティー 「名前」 および「年」 を追加します。
myCar = new Object() // o contains no properties
myCar.name = "Ford"
myCar.year = 1985
ここで
myCar.name -> "Ford"
myCar.year -> 1985
メソッドの定義
メソッドは
function value を含むプロパティーのため、メソッドの定義は通常の関数の定義とその関数をプロパティーに割り当てるだけです。
たとえば、次のプログラムでは、
Rogue Wave Script オブジェクトに定義されている myCar オブジェクトにメソッド "start" を追加します。
function start_engine() {
writeln("vroom vroom\n")
}
myCar.start = start_engine
ここで、式 myCar.start() は、start_engine として定義されている関数を呼び出します。 関数やメソッドにさまざまな名前を使う理由は、混乱を避けるためです。以下のように書くことができます。
function start() {
writeln("vroom vroom\n")
}
myCar.start = start
this キーワード
メソッド内で、this キーワードを使って呼び出しオブジェクトを参照することができます。 たとえば、次のプログラムでは、呼び出しオブジェクトのnameプロパティーの値を返すメソッド getName を定義して、このメソッドを myCar に追加します。
function get_name() {
return this.name
}
myCar.getName = get_name
コンストラクター内で、this はコンストラクターが作成するオブジェクトを参照します。 非メソッド・コンテキストで使われる場合、this はグローバル・オブジェクトの参照を返します。 グローバル・オブジェクトには、最上位で宣言された変数、組み込み関数、コンストラクターが含まれます。
オブジェクト・コンストラクター
オブジェクトは、以下のコンストラクターを使って作成されます。
Rogue Wave Script オブジェクト・コンストラクター
構文 | 効果 |
new Object( ) | プロパティーのない新しいオブジェクトを返します。 |
ユーザー定義のコンストラクター
Object コンストラクターだけでなく、次の構文を使ってユーザー定義の関数をオブジェクト・コンストラクターとして使用することができます。
Rogue Wave Script ユーザー定義のコンストラクター
構文 | 効果 |
new 関数(引数1, ..., 引数n) | 新しいオブジェクトを作成し、関数 (引数1, ..., 引数n) を呼び出してオブジェクトを初期化します。 |
コンストラクター内で、this キーワードを使って初期化中のオブジェクトを参照することができます。
たとえば、次のプログラムでは自動車のコンストラクターを定義します。
function Car(name, year) {
this.name = name
this.year = year
this.start = start_engine
}
ここで、以下を呼び出します
new Car("Ford", "1985")
プロパティー name および year 、そして start メソッドのある新しいオブジェクトを作成します。
組み込みメソッド
以下は、オブジェクトの唯一の組み込みメソッドです。
Rogue Wave Script 組み込みメソッド
構文 | 効果 |
オブジェクト.toString( ) | 文字列 "[object Object]" を返します。 このメソッドは、オブジェクトの toString プロパティーを割り当ててオーバーライドすることができます。 |
Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.