JavaScript オブジェクト 新しいページはコチラ
提供: yonewiki
(→.setPrototypeOf 関数) |
(→.freeze 関数) |
||
| 1,413行: | 1,413行: | ||
== .freeze 関数 == | == .freeze 関数 == | ||
| − | * | + | *Object.freeze(obj); |
| − | : | + | :と上記のようにすると引数に指定したobjオブジェクトはプロパティ記述子の状態が変化し、writableとconfigurableとがfalseに変化し、objのプロパティ値の変更や削除ができなくなります。 |
サンプル | サンプル | ||
<syntaxhighlight lang="javascript" line start="1"> | <syntaxhighlight lang="javascript" line start="1"> | ||
| + | <HTML> | ||
| + | <HEAD> | ||
| + | <TITLE>JavaScript freeze</TITLE> | ||
| + | </HEAD> | ||
| + | <BODY> | ||
| + | JavaScript freeze<br /> | ||
| + | <SCRIPT Language="JavaScript"> | ||
| + | <!-- | ||
| + | var obj = { | ||
| + | x:{ | ||
| + | value:"data1", | ||
| + | writable:true, | ||
| + | enumerable:true, | ||
| + | configurable:true | ||
| + | } | ||
| + | }; | ||
| + | function objFunc(){ | ||
| + | this.nValue1 = 100; | ||
| + | this.nValue2 = 200; | ||
| + | } | ||
| + | |||
| + | Object.freeze(obj); | ||
| + | |||
| + | //オブジェクトの拡張 フリーズしているため無効 | ||
| + | obj.property1 = 100; | ||
| + | |||
| + | var propertydescriptor = Object.getOwnPropertyDescriptor(obj, "x"); | ||
| + | |||
| + | for(var property in propertydescriptor){ | ||
| + | document.write("property = ", property, ", propertydescriptor[", property ,"] = ", propertydescriptor[property], "<BR />"); | ||
| + | } | ||
| + | document.write("obj.x.value = ", obj.x.value, "<BR />"); | ||
| + | |||
| + | obj.x = { | ||
| + | value:"data2", | ||
| + | writable:true, | ||
| + | enumerable:true, | ||
| + | configurable:true | ||
| + | }; | ||
| + | |||
| + | document.write("obj.x.value = ", obj.x.value, "<BR />"); | ||
| + | |||
| + | delete obj.x; | ||
| + | |||
| + | document.write("obj.x.value = ", obj.x.value, "<BR />"); | ||
| + | |||
| + | |||
| + | --> | ||
| + | </SCRIPT> | ||
| + | </BODY> | ||
| + | </HTML> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Media:JavaScript Object freeze.html|実行結果サンプル]] | [[Media:JavaScript Object freeze.html|実行結果サンプル]] | ||
| − | |||
== .isFrozen 関数 == | == .isFrozen 関数 == | ||