ECMAScript / ECMA-262 Edition 5.1ベースのJavaScript文法
JavaScriptは、メソッドを含むプロパティの集合であるオブジェクトを中心とし、プロトタイプによる拡張機能を持ったWeb用のプロトタイプベースのオブジェクト指向スクリプトです。
ECMAScript 5.1ベースのJavaScriptのオブジェクトの種類は、これだけあり、例えば、Functionオブジェクトは、関数、Mathは数学・科学関係、RegExpは正規表現、JSON(JavaScript Object Notaition / JavaScriptオブジェクト表記)は、データ変換書式オブジェクトです。
Globalオブジェクト、Mathオブジェクト、JSONオブジェクト以外の各オブジェクトには、それ自身もプロパティを持つプロパティであり、オブジェクトである prototypeプロパティ、Globalオブジェクトを含む全てのオブジェクトにはメソッドを含むプロパティがあります。
いわゆる標準組み込みメソッド(関数)は、各オブジェクトの、または、各オブジェクトの prototype オブジェクトのプロパティとして保持しています。
JavaScriptには、メソッドではない静的な値を持つデータ記述子と(用語としてはさして重要ではない) getter/setter としての関数のペアを持つアクセサ記述子というプロパティ記述子があります。
JavaScriptでは、プロパティとして持つ関数をメソッドと呼びますが、メソッドは、 get と set というアクセサ記述子を持つプロパティであり、これをアクセサプロパティと呼びます。
アクセサプロパティが持つアクセサ記述子 | ||
---|---|---|
アクセサ 記述子 | 概要 | 既定値 |
get | プロパティにおける getter として提供する関数、 getter が存在しない場合、undefined | undefined (未定義値) |
set | プロパティにおける setter として提供する関数、 setter が存在しない場合、undefined | undefined (未定義値) |
また、以下のデータ記述子を持つプロパティをデータプロパティと呼びます。
データプロパティが持つデータ記述子 | ||
---|---|---|
データ 記述子 | 概要 | 既定値 |
value | プロパティの値 | undefined (未定義値) |
writable | 書き込み可能属性 true/false、値が、変更される可能性のあるプロパティと関連付けられた場合にtrue | false |
configurable | 構成可能属性 true/false、このプロパティ記述子が変更される可能性がある場合、または、該当オブジェクトから削除される可能性がある場合にtrue | false |
enumerable | 列挙可能属性 true/false、このプロパティが、該当するオブジェクト上のプロパティを列挙中に現れる場合にtrue | false |
尚、アクセサ記述子は、アクセサプロパティの、データ記述子は、データプロパティの属性(アトリビュート・attribute)です。