JS DefineObject
出典: MDC
あるオブジェクトのプロパティとなるオブジェクトを生成する関数です。
[編集] 構文
JSObject * JS_DefineObject(JSContext *cx, JSObject *obj,
const char *name, JSClass *clasp, JSObject *proto,
uintN flags);
| Name | Type | Description |
|---|---|---|
cx |
JSContext * |
エラー報告に用いるランタイム環境から派生したコンテキストへのポインタ
リクエストが必要。 ( |
obj |
JSObject * |
生成したオブジェクトをプロパティとして持つオブジェクトへのポインタ |
name |
const char * |
objでのプロパティ名 |
clasp |
JSClass * |
オブジェクト生成に用いるクラス |
proto |
JSObject * |
オブジェクト生成に用いるプロトタイプ |
flags |
uintN |
生成したオブジェクトの属性を指定するフラグ |
[編集] 説明
JS_DefineObjectは、オブジェクトのインスタンスを生成し、それを引数objで指定した既存オブジェクトのプロパティとして設定する関数です。引数nameで、objでのプロパティ名を指定し、flagsでそのプロパティの属性を指定します。以下の表で設定可能なflagsの値を示します。これらの値は単一、あるいは複数の値の論理和として引数に与えることができます。
| Flag | Purpose |
|---|---|
JSPROP_ENUMERATE |
forとinループを使ったアクセス(Core JavaScript 1.5 Guide:Object Manipulation Statements)を可能にします。 |
JSPROP_READONLY |
プロパティの値を読み取り専用にします。 |
JSPROP_PERMANENT |
プロパティの削除を不可能にします。 |
JSPROP_EXPORTED |
Property can be imported by other objects. |
JSPROP_INDEX |
Property is actually an index into an array of properties, and is cast to a const char *. |
引数claspはオブジェクトの生成時に用いる基底クラスへのポインタ、引数protoはプロトタイプへのポインタをそれぞれとります。protoにNULLを指定した場合、JavaScriptは自分自身をプロトタイプとします。引数objはオブジェクトの親オブジェクトになります。
JS_DefineObjectが成功したとき、返値は新たに生成したプロパティオブジェクトへのポインタになります。もしすでにプロパティが設定されていた場合、オブジェクトは生成されず、返り値はNULLになります。