JavaScriptのプロパティについて
JavaScriptにおけるプロパティについて
JavaScriptにおけるプロパティは、オブジェクトの一部として格納されるデータのことを指します。プロパティにはキー(名前)と値があり、オブジェクト内でデータを保存および操作する基本的な仕組みです。このページでは、JavaScriptのプロパティについて詳しく解説し、具体例を交えて説明します。
プロパティの定義
JavaScriptのプロパティは、オブジェクトの「キー」と「値」のペアです。以下の例で基本的なプロパティの定義を示します。
const person = {
name: "太郎",
age: 25
};
この例では、person
オブジェクトにはname
プロパティ(値は"太郎"
)とage
プロパティ(値は25
)が含まれています。
プロパティの種類
JavaScriptには以下の種類のプロパティがあります。
- データプロパティ: 値を保持するプロパティ。
- アクセサプロパティ: 関数を使用して値を取得または設定するプロパティ。
データプロパティ
データプロパティは、最も一般的なプロパティです。以下の例を見てください。
const car = {
brand: "Toyota",
year: 2022
};
console.log(car.brand); // "Toyota"
この例では、car
オブジェクトにbrand
とyear
というデータプロパティがあります。
アクセサプロパティ
アクセサプロパティは、get
およびset
キーワードを使用して定義されます。以下に例を示します。
const person = {
firstName: "花子",
lastName: "山田",
get fullName() {
return this.firstName + " " + this.lastName;
},
set fullName(name) {
const parts = name.split(" ");
this.firstName = parts[0];
this.lastName = parts[1];
}
};
person.fullName = "太郎 鈴木";
console.log(person.fullName); // "太郎 鈴木"
この例では、fullName
プロパティはget
とset
を使用して動的に計算されています。
列挙可能なプロパティ
プロパティは列挙可能かどうかの設定が可能です。for...in
ループやObject.keys()
で列挙可能なプロパティのみが返されます。
const book = {
title: "JavaScript入門",
author: "佐藤",
year: 2023
};
for (let key in book) {
console.log(key); // "title", "author", "year"
}
console.log(Object.keys(book)); // ["title", "author", "year"]
デフォルトでは、すべてのプロパティは列挙可能です。
プロパティ属性へプロパティの属性
プロパティには以下のような属性があります。
writable
: 値の変更が可能かどうか。enumerable
: 列挙可能かどうか。configurable
: 削除や再定義が可能かどうか。
プロパティの属性はObject.defineProperty()
を使用して設定できます。
const obj = {};
Object.defineProperty(obj, "hidden", {
value: "秘密",
writable: false,
enumerable: false,
configurable: false
});
console.log(obj.hidden); // "秘密"
obj.hidden = "公開"; // エラー(strictモードの場合)
console.log(Object.keys(obj)); // 空の配列
まとめへ
まとめ
JavaScriptのプロパティはオブジェクトの中心的な概念であり、その使い方を理解することはJavaScriptプログラミングの基本です。データプロパティやアクセサプロパティを適切に使い分け、プロパティ属性を活用することで、より柔軟で効率的なコードを記述できます。
トップに戻る