カテゴリー
オライリーJavaScript

オブジェクトのメソッド

JavaScriptオブジェクトはすべてObject.prototypeからプロパティを継承する
継承するプロパティの多くはメソッドで、汎用的なものなので、理解しておく。
hasOwnProperty()
propertyIsEnumerable()
isProtptypeOf()
Object.create()
Object.getPrototypeOf()

Object.prototype で定義されている汎用的なメソッド
toString()メソッド
toLocaleString()メソッド
toJSON()メソッド
valueOf()メソッド

カテゴリー
オライリーJavaScript

オブジェクトのシリアライズ

オブジェクトを再度同じオブジェクトに戻せるように文字列に変換すること。

JSON(JavaScript Object Notation)

JSON.stringify()
JSON.parse()
カテゴリー
オライリーJavaScript

ゲッターメソッドとセッターメソッドのためのレガシーAPI

Object.getOwnPropertyDescriptor()
Object.DefineProperty()

非標準のメソッドであることがすぐにわかるように、先頭と末尾にアンダースコア文字が2つ付けられている。

__lookupGetter__()
__lookupSetter__()
__defineGetter__()
__defineSetter__()


カテゴリー
オライリーJavaScript

プロパティ属性

プロパティ属性 データプロパティ

書き込み可
列挙可
再定義可

プロパティ属性 アクセッサプロパティ
取得(get)
設定(set)
列挙可
再定義可

プロパティディスクリプタ property descriptor
プロパティの属性と同じ名前のプロパティを持つ。
データプロパティ のプロパティディスクリプタ
value
writable
enumerable
configurable

アクセッサプロパティ のプロパティディスクリプタ
get
set
enumerable
configurable

Object.getOwnPropertyDescriptor()
プロパティディスクリプタの取得
独自プロパティのみを取得する
継承プロパティを取得するには、プロトタイプチェーンをたどる必要がある。

カテゴリー
オライリーJavaScript

プロパティのゲッターメソッドとセッターメソッド

ECMAScript5では、値の代わりに、ゲッターgetterメソッドとセッターsetterメソッドを指定できる。
ゲッターメソッドとセッターメソッドで定義されるプロパティをアクセサプロパティと呼び、
単純な値を持つだけのデータプロパティと区別する場合がある。

var o = {
  //通常のデータプロパティ
  data_prop: value;

  //2つの関数で定義されたアクセサプロパティ
  get accessor_prop() { /* 関数本体 */},
  set accessor_prop(value) { /* 関数本体 */}
};

カテゴリー
オライリーJavaScript

オブジェクトプロパティの調査

for/inループ
Object.keys() ECMAScript5
Object.getOwnPropertyNames() ECMAScript5

カテゴリー
オライリーJavaScript

プロパティのテスト

ある名前のプロパティをオブジェクトを持っているかどうかをテストする
in演算子
hasOwnPropery()メソッド
propertyIsEnumerable()メソッド

カテゴリー
オライリーJavaScript

プロパティの削除

delete演算子
オブジェクトからプロパティを削除する。
delete演算子が削除するのは、独自プロパティだけ。
delete演算子は再定義可属性がfalseのプロパティは削除しない。

カテゴリー
オライリーJavaScript

プロパティアクセスのエラー

存在しないプロパティから値を取得してもエラーにならない。
oの独自プロパティや継承プロパティ中にプロパティxが見つからない場合、
o.xは、undefinedに評価される。
ただし、存在しないプロパティに対して、プロパティを読み出すとエラーになる。

カテゴリー
オライリーJavaScript

継承

JavaScriptの大きな特徴の1つ
プロパティを読み出すときは継承が行われ、値を設定するときは継承が行われない。