Foundation > Rogue Wave Script 言語リファレンス > オブジェクト
 
オブジェクト
本セクションは、次のような構成になっています。
*Rogue Wave Script オブジェクト
*メソッドの定義
*this キーワード
*オブジェクト・コンストラクター
*ユーザー定義のコンストラクター
*組み込みメソッド
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.