Object 組込みオブジェクト

この章では組込み変数領域が初めから備えている Object 組込みオブジェクトを定義する。

Object のメンバ

prototype
プロトタイプを持たないオブジェクト。
name
文字列オブジェクト "Object"

Object の内部メンバ

$prototype
Type.prototype

Object の関数としての呼出し

Object は関数として呼出し可能であり、 関数として呼出されると新たなオブジェクトを一つ作成し それを値とする正常終了の結果を返す。このオブジェクトは $prototype 内部メンバの値として Object.prototype を持つほかに内部メンバ・メンバを持たない。

Object のインスタンスのプロパティ

Object のインスタンスは以下のプロパティを持つ。ただし、 Object.prototype のプロパティがスクリプトの実行によって変更された場合は、この限りではない。

$prototype
このプロパティの値は、このオブジェクトのプロトタイプオブジェクトである。ただし、このオブジェクトに プロトタイプオブジェクトが存在しなければ、このプロパティの値は初期の Void.void である。
このオブジェクトが $isImmutable 内部メンバを持つならば、 このプロパティは読み取り専用である。
このプロパティが読み取り専用でなければ、このプロパティにオブジェクト P を代入すると、このオブジェクトのプロトタイプを P に変更する。代入の結果は、代入を行った直後のこのプロパティの値である。
このプロパティが読み取り専用でなければ、このプロパティを削除すると、 このオブジェクトの $prototype 内部メンバを削除する。削除の結果は、 削除を行う直前のこのプロパティの値である。
$isImmutable
このプロパティの値は真偽値オブジェクトである。 このオブジェクトに $isImmutable 内部メンバが存在すれば このプロパティの値は初期の Boolean.true であり、さもなくば値は初期の Boolean.false である。
このオブジェクトが $isImmutable 内部メンバを持つならば、 このプロパティは読み取り専用である。
このプロパティが読み取り専用でなければ、このプロパティにオブジェクト V を代入すると、V に応じて次の動作を行う:
V が初期の Boolean.true の場合
このオブジェクトに $isImmutable 内部メンバを作成し、V その値とする。代入の結果は V である。
V が初期の Boolean.false の場合
V を代入の結果とする以外に何もしない。
V がこれ以外のオブジェクトの場合
新しい TypeError のインスタンスを投げる。
このプロパティが読み取り専用でなければ、このプロパティを削除するとただ初期の Boolean.false を結果とする。
このプロパティではオブジェクトの不変性を確認・設定できる。 (→set-property)
$equal メソッド
次の関数生成式を評価して得られるような関数オブジェクト: @[x]{ @this === x }
$unequal メソッド
次の関数生成式を評価して得られるような関数オブジェクト: @[x]{ !(@this == x) }
toString メソッド
関数として呼び出されると、渡された @this 値を文字列に変換し、その文字列を 内容とする文字列オブジェクトを値とする正常終了の結果を返す。文字列への変換の方法は実行環境に任せる。
© 2006-2007 Magicant