JavaScript オブジェクト 新しいページはコチラ
提供: yonewiki
(→.getOwnPropertyDescriptor 関数) |
|||
1,071行: | 1,071行: | ||
== .getOwnPropertyDescriptor 関数 == | == .getOwnPropertyDescriptor 関数 == | ||
− | * | + | *var propertyDescriptor = Object.getOwnPropertyDescriptor(objCreate1,"data_x"); |
− | : | + | :上記のように第一引数に、プロパティ値をもったオブジェクト名を記述し、第二引数に第一引数のオブジェクトが保有するプロパティを記述することで、プロパティに設定されているプロパティ記述子のオブジェクトを取得し、左辺値のオブジェクト変数に設定する。サンプルは先述のサンプルと同じで、利用されている部分は16・23~26行目です。 |
サンプル | サンプル | ||
<syntaxhighlight lang="javascript" line start="1"> | <syntaxhighlight lang="javascript" line start="1"> | ||
+ | <HTML> | ||
+ | <HEAD> | ||
+ | <TITLE>JavaScript create</TITLE> | ||
+ | </HEAD> | ||
+ | <BODY> | ||
+ | JavaScript create<br /> | ||
+ | <SCRIPT Language="JavaScript"> | ||
+ | <!-- | ||
+ | var obj = {}; | ||
+ | var objCreate = Object.create(null, {x:{value:"create_x" ,writable:true}}); | ||
+ | var objCreate2 = Object.create(Object.prototype,{x:{value:"create2_x",writable:true}}); | ||
+ | var objCreate3 = Object.create(Object.getPrototypeOf(obj), {x:{value:"create3_x",writable:true}}); | ||
+ | obj.newDataProperty = "obj_newDataProperty"; | ||
+ | |||
+ | var descriptor = Object.getOwnPropertyDescriptor(obj, "newDataProperty"); | ||
+ | |||
+ | |||
+ | descriptor.writable = false; | ||
+ | Object.defineProperty(obj, "newDataProperty", descriptor); | ||
+ | |||
+ | |||
+ | var desc = Object.getOwnPropertyDescriptor(obj, "newDataProperty"); | ||
+ | var desc1 = Object.getOwnPropertyDescriptor(objCreate, "x"); | ||
+ | var desc2 = Object.getOwnPropertyDescriptor(objCreate2, "x"); | ||
+ | var desc3 = Object.getOwnPropertyDescriptor(objCreate3, "x"); | ||
+ | |||
+ | |||
+ | document.write("■obj.newDataPropertyのプロパティ記述子の出力<br />"); | ||
+ | for (var prop in desc) { | ||
+ | document.write(prop + ': ' + desc[prop]); | ||
+ | document.write("<br />"); | ||
+ | } | ||
+ | |||
+ | document.write("■objCreate.xのプロパティ記述子の出力<br />"); | ||
+ | for (var prop in desc1) { | ||
+ | document.write(prop + ': ' + desc1[prop]); | ||
+ | document.write("<br />"); | ||
+ | } | ||
+ | |||
+ | document.write("■objCreate2.xのプロパティ記述子の出力<br />"); | ||
+ | for (var prop in desc2) { | ||
+ | document.write(prop + ': ' + desc2[prop]); | ||
+ | document.write("<br />"); | ||
+ | } | ||
+ | |||
+ | document.write("■objCreate3.xのプロパティ記述子の出力<br />"); | ||
+ | for (var prop in desc3) { | ||
+ | document.write(prop + ': ' + desc3[prop]); | ||
+ | document.write("<br />"); | ||
+ | } | ||
+ | --> | ||
+ | </SCRIPT> | ||
+ | </BODY> | ||
+ | </HTML> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Media:JavaScript Object getOwnPropertyDescriptor.html|実行結果サンプル]] | [[Media:JavaScript Object getOwnPropertyDescriptor.html|実行結果サンプル]] | ||
− | |||
== .getOwnPropertyNames 関数 == | == .getOwnPropertyNames 関数 == |