JavaScript/プロパティ
プロパティ
編集プロパティとは、JavaScriptにおけるオブジェクトの属性を表します。プロパティは、キー(名前)と値(データまたは動作)のペアとして構成され、オブジェクトのデータや機能を定義します。
プロパティの基本構造
編集JavaScriptのプロパティは、以下の形式で定義およびアクセスされます。
// オブジェクトの定義 const obj = { key: "value", // プロパティ anotherKey: 42 // プロパティ }; // プロパティへのアクセス console.log(obj.key); // "value" console.log(obj["anotherKey"]); // 42
プロパティの種類
編集JavaScriptのプロパティには、以下のような種類があります。
データプロパティ
編集データプロパティは、値を保持するプロパティです。以下の属性を持ちます。
- value: プロパティの値。
- writable: 値の書き換えが可能かどうか。
- enumerable: 列挙可能かどうか(
for...in
やObject.keys()
で表示されるか)。 - configurable: 削除や再定義が可能かどうか。
// データプロパティの例 const obj = {}; Object.defineProperty(obj, "example", { value: 100, writable: true, enumerable: true, configurable: true }); console.log(obj.example); // 100
アクセサプロパティ
編集アクセサプロパティは、値を取得または設定するためのgetterとsetterを定義します。値を直接保持しません。
// アクセサプロパティの例 const obj = { _value: 0, get value() { return this._value; }, set value(newValue) { this._value = newValue; } }; obj.value = 42; console.log(obj.value); // 42
プロパティの操作
編集プロパティの操作には以下の方法があります。
プロパティの追加
編集オブジェクトに新しいプロパティを追加します。
const obj = {}; obj.newKey = "newValue"; console.log(obj.newKey); // "newValue"
プロパティの更新
編集既存のプロパティの値を変更します。
const obj = { key: "value" }; obj.key = "updatedValue"; console.log(obj.key); // "updatedValue"
プロパティの削除
編集delete
演算子を使用してプロパティを削除します。
const obj = { key: "value" }; delete obj.key; console.log(obj.key); // undefined
プロパティ属性の取得と設定
編集Object.getOwnPropertyDescriptor()
と Object.defineProperty()
を使用して、プロパティの属性を取得または設定できます。
// プロパティ属性の取得 const obj = { key: "value" }; const descriptor = Object.getOwnPropertyDescriptor(obj, "key"); console.log(descriptor); // プロパティ属性の設定 Object.defineProperty(obj, "key", { writable: false });
特殊なプロパティ
編集JavaScriptのいくつかの特殊なプロパティとして以下が挙げられます。
まとめ
編集- プロパティはオブジェクトのデータや動作を表す重要な要素です。
- データプロパティとアクセサプロパティの2種類が存在します。
- プロパティの属性(writable, enumerable, configurable)を活用してオブジェクトの挙動を細かく制御できます。