カテゴリー
JavaScript

オブジェクトのメソッド

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

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

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

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

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

JSON(JavaScript Object Notation)

JSON.stringify()
JSON.parse()

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

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

Object.getOwnPropertyDescriptor()
Object.DefineProperty()

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

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

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

プロパティ属性

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

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

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

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

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

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

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

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

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

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

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

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

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

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

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

プロパティのテスト

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

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

プロパティの削除

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

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

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

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

参考書籍:

オライリー JavaScript 第6版

カテゴリー
JavaScript

継承

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

参考書籍:

オライリー JavaScript 第6版