String 組込みオブジェクト

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

String は文字列オブジェクトに対応する Type のインスタンスである。

文字列オブジェクト

以下の条件を全て満たすオブジェクトを文字列オブジェクトという:

文字列オブジェクトの value 内部メンバの値を、その文字列オブジェクトの内容という。

文字列オブジェクトやその内容のことを単に文字列ということがある。

String のメンバ

prototype
Object.prototype を準プロトタイプとするオブジェクト。
name
文字列オブジェクト "String"

String の内部メンバ

$prototype
Type.prototype

String の関数としての呼出し

String は関数として呼出し可能であり、関数として呼出されると次の処理を実行する:

  1. 渡された引数オブジェクトが一つであることを確認する。 引数オブジェクトが複数ある場合または 0 個の場合は、新しい NumberOfArgumentsError のインスタンスを投げる。
  2. 引数を a として、次の式の評価結果を返す: a.toString[]

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

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

$equal メソッド
1-ary メソッド。呼び出されると次の動作を行う:
  1. 渡された引数の個数が一つであり、@this 値と引数がどちらも文字列オブジェクトならば、
    • 二つの文字列の内容が等しければ [[初期の Boolean.true]] を
    • 二つの文字列の内容が異なっていれば [[初期の Boolean.false]] を
    返す。
  2. さもなくば動作は規定しない。
$unequal メソッド
1-ary メソッド。呼び出されると次の動作を行う:
  1. 渡された引数の個数が一つであり、@this 値と引数がどちらも文字列オブジェクトならば、
    • 二つの文字列の内容が等しければ [[初期の Boolean.false]] を
    • 二つの文字列の内容が異なっていれば [[初期の Boolean.true]] を
    返す。
  2. さもなくば動作は規定しない。
$add メソッド
1-ary メソッド。呼び出されると次の動作を行う:
  1. 渡された引数の個数が一つであり、@this 値および引数が全て文字列オブジェクトであることを確認する。 この条件に当てはまらない場合、動作は未定義である。
  2. @this 値の文字列オブジェクトの内容の後に引数の文字列オブジェクトの内容を 連結してできる文字列を表す文字列オブジェクトを値とする正常終了の結果を返す。
toString メソッド
0-ary メソッド。呼び出されると次の動作を行う:
  1. 渡された @this 値が文字列オブジェクトならば、[[@this 値]] を返す。
  2. さもなくば動作は規定しない。

String オブジェクトの内部メンバ

$prototype
String.prototype、または String.prototype を準プロトタイプとするオブジェクト。
この内部メンバは不変である。
value
Unicode 文字列
この内部メンバは不変である。
© 2006-2007 Magicant