本頁の目次 目次

15.2 Object オブジェクト

15.2.1 関数として呼出される Object コンストラクタ

コンストラクタとしてではなく関数として呼出される Object は、型変換を行う。

15.2.1.1 Object ( [ value ] )

Object 関数が引数無し、または引数値一つで呼出されるとき、次のステップが取られる:

  1. value が null, undefined であるか供給されないとき、厳密にオブジェクトコンストラクタが同じ引数 (セクション 15.2.2.1) で呼出されているならば、新規 Object オブジェクトを生成して返す。
  2. ToObject(value) を返す。

15.2.2 Object コンストラクタ

Object が new 式の一部として呼出されるとき、コンストラクタはオブジェクトを作成できる。

15.2.2.1 new Object ( [ value ] )

Object コンストラクタが引数なし、または引数 value 一つで呼出される場合、次のステップが取られる:

  1. value が提供されなければ、ステップ 8 へ。
  2. value の型が Object でなければ、ステップ 5 へ。
  3. value が Native ECMAScript オブジェクトならば、新規にオブジェクトを生成せず、単に value を返す。
  4. value が Host オブジェクトならば、Host オブジェクトによる実装依存の方法で動作し、結果が返される。
  5. value の型が String ならば、 ToObject(value) を返す。
  6. value の型が Boolean ならば、 ToObject(value) を返す。
  7. value の型が Number ならば、 ToObject(value) を返す。
  8. (引数 value が提供されない、またはその型が Null または Undefined である。)
  9. Native ECMAScript オブジェクトを生成する。
  10. 新規に生成したオブジェクトの [[Prototype]] プロパティを Object prototype オブジェクトに設定新規に生成したオブジェクトの [[Class]] プロパティを "Object" に設定する。
  11. 新規に生成したオブジェクトは [[Value]] プロパティを持たない。
  12. 新規に生成した Native オブジェクトを返す。

15.2.3 Object コンストラクタのプロパティ

Object コンストラクタの内部 [[Prototype]] プロパティの値は、 Function プロトタイプオブジェクトである。

内部プロパティと length プロパティ (値は 1) の他に、 Object コンストラクタは次のプロパティを持つ:

15.2.3.1 Object.prototype

Object.prototype の初期値は Object プロトタイプオブジェクト (セクション 15.2.4) である。

このプロパティは属性 { DontEnum, DontDelete, ReadOnly } である。

15.2.4 Object プロトタイプオブジェクトのプロパティ

Obuject プロトタイプオブジェクトの内部 [[Prototype]] プロパティの値は null であり、内部 [[Class]] プロパティの値は "Object" である。

15.2.4.1 Object.prototype.constructor

Object.prototype.constructor の初期値は、組込み Object コンストラクタである。

15.2.4.2 Object.prototype.toString ( )

toString メソッドが呼出されると、次のステップが取られる:

  1. このオブジェクトの [[Class]] プロパティを取得。
  2. 3 つの文字列 "[object ", Result(1), "]" を連結した文字列を算出する。
  3. Result(2) を返す。

15.2.4.3 Object.prototype.toLocaleString ( )

この関数は toString() 呼出しの結果を返す。

NOTE この関数は、全ての Object にそれが利用できない場合でも一般的な toLocaleString インターフェイスを与えるために提供される。現在、 Array, Number, Date がロケールに反応する独自の toLocaleString メソッドを提供する。

NOTE この関数の最初のパラメータは、この標準の将来のバージョンにおいて使用されそうである; 実装はこのパラメータ位置を他の方途に使用しないことを推奨する。

15.2.4.4 Object.prototype.valueOf ( )

valueOf メソッドはその this 値を返す。このオブジェクトが host オブジェクト (セクション15.2.2.1) の Object コンストラクタの呼び出しの結果であれば、本来コンストラクタに渡された host オブジェクトのように valueOfthis 値を返すか他の値を返すかは実装依存である。

15.2.4.5 Object.prototype.hasOwnProperty (V)

hasOwnProperty メソッドが引数 V で呼出されるとき、次のステップが取られる:

  1. Othis オブジェクトとする。
  2. ToString(V) を呼出す。
  3. O が Result(2) で与えられる名前のプロパティを持たなければ、 false を返す。
  4. true を返す。

NOTE [[HasProperty]] (セクション 8.6.2.4)とは異なり、このメソッドはプロトタイプチェーンを考慮しない。

15.2.4.6 Object.prototype.isPrototypeOf (V)

isPrototypeOf メソッドが引数 V で呼出されるとき、次のステップが取られる:

  1. Othis オブジェクトとする。
  2. V がオブジェクトでなければ、 false を返す。
  3. VV の [[Prototype]] プロパティの値とする。
  4. V が null ならば、 false を返す。
  5. OV が同じオブジェクトを参照している、またはそれらが互いに結合したオブジェクト (セクション 13.1.2) を参照しているならば、 true を返す。
  6. ステップ 3 へ。

15.2.4.7 Object.prototype.propertyIsEnumerable (V)

propertyIsEnumerable メソッドが引数 V で呼出されるとき、次のステップが取られる:

  1. Othis とする。
  2. ToString(V) を呼出す。
  3. O が Result(2) で与えられる名前のプロパティをもたなければ、 false を返す。
  4. そのプロパティが DontEnum 属性を持っていれば、 false を返す。
  5. true を返す。

NOTE このメソッドはプロトタイプチェーンを考慮しない。

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

Object インスタンスは、 Object プロトタイプオブジェクトから継承するプロパティの上に特別なプロパティを持たない。

Page Contents

Issued: / Revised: / All rights reserved. © 2002-2016 TAKI