説明
Object.defineProperty
は、JavaScriptの組み込み関数であり、オブジェクトに新しいプロパティを定義するために使用されます。
この関数は3つの引数を取ります。
- 最初の引数は対象となるオブジェクトです。
- 2番目の引数はプロパティの名前です。
- 3番目の引数はプロパティの属性や動作を定義するための設定オブジェクトです。
設定オブジェクトにはいくつかのプロパティがあります。例えば、value
プロパティはプロパティの値を指定し、writable
プロパティはプロパティの値が変更可能かどうかを示します。また、enumerable
プロパティはプロパティが列挙可能かどうかを示し、configurable
プロパティはプロパティの設定を変更可能かどうかを示します。
例
const obj = {};
Object.defineProperty(obj, 'name', {
value: 'John',
writable: false,
enumerable: true,
configurable: true
});
console.log(obj.name); // 結果: John
obj.name = 'Jane'; // 書き込み不可のため、エラーが発生します
console.log(obj.name); // 結果: John
for (let key in obj) {
console.log(key); // 結果: name
}
上記の例では、obj
オブジェクトにname
というプロパティを定義しています。プロパティの値は'John'
とし、writable
はfalse
に設定しています。したがって、プロパティの値を変更することはできません。enumerable
はtrue
に設定されているため、for...in
ループでプロパティが列挙可能です。
Object.defineProperty
を使用することで、オブジェクトのプロパティの振る舞いや属性を細かく制御することができます。
コメント