JavaScript オブジェクト 新しいページはコチラ
提供: yonewiki
(→.create 関数) |
(→.create 関数) |
||
874行: | 874行: | ||
:サンプルはプロパティ記述子を出力したり、プロパティ記述子の値を設定したりする処理をする部分を追加しているためややこしいことになっていますが、まずはObject.createの使い方だけでも参考にしてもらえればと思います。もうちょい先まで同じサンプルで説明したいとおもっておりますので、もうちょっと先の項目まで読めば、わからなかった部分も理解できると思います。 | :サンプルはプロパティ記述子を出力したり、プロパティ記述子の値を設定したりする処理をする部分を追加しているためややこしいことになっていますが、まずはObject.createの使い方だけでも参考にしてもらえればと思います。もうちょい先まで同じサンプルで説明したいとおもっておりますので、もうちょっと先の項目まで読めば、わからなかった部分も理解できると思います。 | ||
+ | |||
+ | |||
+ | :ここでは、サンプルの10、11、12行目だけ解説しておきたいと思います。10行目では生成するオブジェクトを指定しないパターンで、nullとしています。prototypeを持たないので、最小限のオブジェクトが生成されます。11行目ではObjectのプロトタイプを引き継がさせています。Objectも比較的機能を持たないオブジェクトですので、nullの指定とあまり変わりません。違いは調べていませんので、開発者ツールでぶら下がっているオブジェクトの違いを見てみてほしいですね。12行目は生成したオブジェクトからプロトタイプ情報を取得して、引き継がせる手法になっています。引数にしたobjは何も持たないのでobj.prototypeでは生成できませんが、このようにすると、プロトタイプ情報を設定するため、何もないobjでも大丈夫です。第二引数に指定したプロパティ記述子はすべて同じような内容になっていますが、プロパティ記述子は最大構成でも以下のような構造になります。 | ||
+ | |||
+ | { | ||
+ | :value:"Data", | ||
+ | :writable:true, | ||
+ | :enumerable:true, | ||
+ | :configurable:true, | ||
+ | :set(){}, | ||
+ | :get(){} | ||
+ | } | ||
+ | |||
+ | プロパティデスクリプタは、値を意味するvalueプロパティのほか、書き換えを制御するwritebleプロパティ、inキーワードによる列挙をするかを制御するenumerableプロパティ、プロパティディスクリプタの変更を制御するconfigurableプロパティ。これにset関数とget関数が利用できます。 | ||
== .defineProperties 関数 == | == .defineProperties 関数 == |