JavaScript/Object/defineProperty
表示
< JavaScript | Object
Object.defineProperty()
は、指定されたオブジェクトに1つのプロパティを定義または変更するメソッドです。このメソッドは、指定されたオブジェクトを返します[1]。
構文
[編集]Object.defineProperty(obj,prop,descriptor)
obj
: プロパティを定義または変更する対象のオブジェクト。prop
: 定義または変更するプロパティの名前(文字列またはシンボル)。descriptor
: プロパティの属性を記述したオブジェクト(value
,writable
,enumerable
,configurable
,get
,set
など)。
例
[編集]オブジェクトにプロパティを定義するプログラム
[編集]以下のプログラムは、Object.defineProperty()
を使用してオブジェクトにプロパティを定義します。
constobj={};Object.defineProperty(obj,'property1',{value:42,writable:true,enumerable:true,configurable:true});console.log(obj.property1);// 42obj.property1=100;console.log(obj.property1);// 100
このプログラムでは、Object.defineProperty()
を使用して obj
オブジェクトに property1
を定義しています。property1
は書き込み可能で列挙可能、設定可能です。
ゲッターとセッターを定義するプログラム
[編集]以下のプログラムは、Object.defineProperty()
を使用してゲッターとセッターを定義します。
constobj={};Object.defineProperty(obj,'property1',{get:function(){returnthis._property1;},set:function(value){this._property1=value;},enumerable:true,configurable:true});obj.property1='Hello';console.log(obj.property1);// Hello
このプログラムでは、Object.defineProperty()
を使用して obj
オブジェクトに property1
を定義しています。property1
はゲッターとセッターを持つプロパティです。
注意点
[編集]- プロパティディスクリプタ: プロパティの属性は、プロパティディスクリプタ(
value
,writable
,enumerable
,configurable
,get
,set
など)を含むオブジェクトで定義されます。 - デフォルト値: プロパティディスクリプタの属性が指定されていない場合、デフォルト値は
false
またはundefined
になります。 - 設定不可プロパティ:
configurable
がfalse
に設定されているプロパティは、後から変更または削除することができません。
脚註
[編集]- ^これは、オブジェクトのプロパティを詳細に定義するために使用されます。