本頁の目次 目次

15 ネイティブ ECMAScript オブジェクト (Native ECMAScript Objects)

ECMAScript プログラム実行開始時にいつでも利用可能な確実な組込みオブジェクトがある。一つは、グローバルオブジェクトであり、実行プログラムのスコープチェーンに入っている。他、グローバルオブジェクトの初期プロパティにアクセス可能である。

他に定義されなければ、 [[Call]] プロパティを持つ組込みオブジェクトの [[Class]] プロパティは "Function" であり、 [[Call]] プロパティを持たない組込みオブジェクトの [[Class]] プロパティは "Object" である。

多くの組込みオブジェクトは関数\である: それらは引数をつけて呼び出すことができる。またいくつかはコンストラクタでもある: それらは new 演算子をを伴う使用を意図されている。この仕様は、各組込み関数ごとに、関数が要求する引数とその Function オブジェクトのプロパティを記述する。各組込みコンストラクタごとに、この仕様は、そのコンストラクタの prototype オブジェクトのプロパティと、コンストラクタを呼び出す new 式によって返されるオブジェクトインスタンスのプロパティも記述する。

個々の関数の説明中で他に定義されなければ、このセクションで記述する関数またはコンストラクタが関数が要求すると定義されているよりも少ない引数を与えられた場合、その引数をそれぞれ undefined として十分な追加引数を与えられたかのように振舞う。

個々の関数の説明中で他に定義されなければ、このセクションで記述する関数またはコンストラクタが関数が許すと定義されているよりも多く引数を与えられた場合、その振る舞いは定義しない。部分的に、実装はこのケースの例外 TypeError を投げることを許される(が、必須ではない)。

組み込み関数のセットに機能を追加する実装は、既存の関数への新規パラメータ追加よりも新規関数の追加によりそれを行うことを奨励する。

各組込み関数と各組込みコンストラクタは Function prototype オブジェクトを持ち、その内部 [[Prototype]] プロパティの初期値として、式 Function.prototype (15.3.2.1) の値を持つ。

各組込み prototype オブジェクトは Object prototype オブジェクトを持ち、Object prototype オブジェクト自身以外は、その内部 [[Prototype]] プロパティの値として初期は式 Object.prototype (15.3.2.1) の値を持つ。

このセクションで記述されるどの組み込み関数も、個々の関数の記述に特に指定がない限りは、内部 [[Construct]] メソッドを実装すべきではない。このセクションで記述されるどの組み込み関数も、個々の関数の記述に特に指定がない限りは、初期 prototype プロパティを持つべきではない。このセクションで記述される組み込み関数はみな -- コンストラクタも通常の関数も -- 整数の length プロパティを持つ。とくに指定がなければ、この値は、関数説明のセクションの見出しに示される選択的パラメータを含む名前の付いた引数の最大数に等しい。

NOTE 例えば、 String prototype オブジェクトの slice プロパティの初期値である Function オブジェクトは、 2 つの名前つき引数 start と end を示すセクション見出し "String.prototype.slice (start , end)" の下に記述される。それゆえその Function オブジェクトの length プロパティは 2 となる。

各ケースにおいて、このセクションで記述する組込み Function オブジェクトの length プロパティは、属性 { ReadOnly, DontDelete, DontEnum } である (そして他にはない)。このセクションで記述する他のプロパティはそれぞれ、とくに指定がなければ、属性 { DontEnum } (そして他にはない) である。

Page Contents

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