オブジェクトについて[Object.create()]

2017年2月5日

Objectクラスのcreateメソッドは、オブジェクトを生成するためのメソッドです(ES2015(ES6))。

 

関連ページ

オブジェクトについて[オブジェクトリテラル][プロパティ][メソッド]

 

オブジェクトについて[コンストラクタ関数][new演算子]

 

スポンサーリンク

 

 

実際にいくつかの例において、Object.create()でオブジェクトを生成してみます。

 

 

上記コードでは、引数においてオブジェクトの元となるbook1オブジェクトを指定し、新しくbook2オブジェクトを生成しています。book2はbook1を継承しています。

 

第2引数でプロパティを追加することも可能です。下記コードの4行目では、title2プロパティのvalue属性において、プロパティの値を三四郎に設定しています。

 

 

 

第1引数にObject.prototypeを指定すれば、Objectオブジェクトが元であるオブジェクトが生成されます。

 

関連ページ

prototype(プロトタイプ)について

 

Objectオブジェクトについて[組み込みオブジェクト]

 

プロパティには、value属性の他にも下記のような属性があります。writable、configurable、enumerableはデフォルトではfalseになっています。  

value プロパティの値
writable プロパティ値が書き換え可能か (デフォルトでfalse)
configurable 属性の変更、プロパティの削除 (デフォルトでfalse)
enumerable 列挙が可能か (デフォルトでfalse)
get プロパティ値のゲッター関数
set プロパティ値のセッター関数

 

 

例えばwritableをtrueにすると、プロパティ値を変更することができます。下記コードでは、2行目にて、titleプロパティのwritabeをtrueに指定しています。これでtitleプロパティの値を三四郎に変更できるようになります(7行目)。

 

下記コードでは、2行目の titleのconfigurableをtrueにしています。これでtitleプロパティを削除することが可能となります(7行目)。またenumerableをtrueにしているので、プロパティの列挙が可能となっています。

 

引数にnullを指定すると、完全に空のオブジェクトが生成されます。

 

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー