JavaScriptのオブジェクトの属性
- 前のページ JS オブジェクト 定義
- 次のページ JS オブジェクト メソッド
属性はJavaScriptオブジェクトの中で最も重要な部分です。
JavaScript属性
属性とはJavaScriptオブジェクトに関連付けられた値のことです。
JavaScriptオブジェクトは無序列の属性の集合です。
属性は通常変更、追加、削除ができますが、一部の属性は読み取り専用です。
JavaScript属性へのアクセス
オブジェクト属性へのアクセス文法は:
objectName.property // person.age
または:
objectName["property] // person["age"]
または:
objectName[expression] // x = "age"; person[x]
式は属性名として計算されなければなりません。
例1
person.firstname + " is " + person.age + " years old.";
例2
person["firstname"] + " is " + person["age"] + " years old.";
JavaScriptのfor...inループ
JavaScript for...in
文がオブジェクトの属性を巡回します。
文法
for (variable in object) { 実行するコード }
for...in
ループ内のコードブロックは各属性に対して一度だけ実行されます。
オブジェクトの属性をループする:
例
var person = {fname:"Bill", lname:"Gates", age:62}; for (x in person) { txt += person[x]; }
新しい属性を追加
既存のオブジェクトに新しい属性を追加するには、シンプルな代入を使用します。
personオブジェクトが既に存在する場合、新しい属性を追加できます:
例
person.nationality = "English";
予約語を属性名(またはメソッド名)として使用することはできません。JavaScriptの命名規則に従ってください。
属性を削除
delete
オブジェクトから属性を削除するキーワード:
例
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}; delete person.age; // または delete person["age"];
delete
キーワードは属性の値と属性自体を同時に削除します。
削除後、属性が追加される前に使用できません。
delete
演算子はオブジェクトの属性に対して設計されています。変数や関数には影響しません。
delete
演算子はプレデファインされた JavaScript オブジェクトの属性に対して使用すべきではありません。これをすると、アプリケーションがクラッシュする可能性があります。
属性値
すべての属性には名前があります。また、それらには値があります。
値は属性の特性の1つです。
他の特性には、可挙げ性、可設定性、書き換え可能性が含まれます。
これらの特性は属性がアクセスされる方法を定義します(読み取り可能か、書き換え可能か?)
JavaScript では、すべての属性は読み取り可能ですが、値のみが変更可能です(属性が書き換え可能な場合のみ)。
(ECMAScript 5 にはすべての属性特性を取得および設定する方法があります)
プロトタイプ属性
JavaScript オブジェクトはそのプロトタイプの属性を継承します。
delete
キーワードは継承された属性を削除しませんが、原型の属性を削除した場合、すべての原型から継承したオブジェクトに影響を与えます。
- 前のページ JS オブジェクト 定義
- 次のページ JS オブジェクト メソッド