プロパティは、あらゆる JavaScript オブジェクトの中で最も重要な部分です。
プロパティは、JavaScript オブジェクトに関連付けられた値です。
JavaScript オブジェクトは、順不同なプロパティのコレクションです。
プロパティは、通常、変更、追加、削除ができますが、一部は読み取り専用です。
オブジェクトのプロパティにアクセスするための構文は次の通りです:
objectName.property
// person.age
または
objectName["property"] // person["age"]
または
objectName[expression] // x = "age"; person[x]
expression は、プロパティ名に評価しなければなりません。
JavaScript for...in 文は、オブジェクトのプロパティをループします。
for (variable in object) {
code to be executed
}
for...in ループ内のコードのブロックは、各プロパティに対して 1 度だけ実行されます。
オブジェクトのプロパティをループします:
var person = {fname:"John", lname:"Doe", age:25};
for (x in person) {
txt += person[x];
}
Try it Yourself »
既存のオブジェクトに新しいプロパティを追加するには、値を与えるだけです。
person オブジェクトが既に存在すると仮定します - それに新たなプロパティを与えることができます:
プロパティ(またはメソッド)名に予約語を使用することはできません。 JavaScript の命名規則が適用されます。
delete キーワードは、オブジェクトからプロパティを削除します:
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
delete person.age; // or delete person["age"];
Try it Yourself »
delete キーワードは、プロパティの値とプロパティ自体の両方を削除します。
削除した後は、再び追加しない限り、そのプロパティを使用することはできません。
delete 演算子は、オブジェクトのプロパティに使用するよう設計されています。これは、変数や関数には影響を与えません。
delete 演算子は、定義済み JavaScript オブジェクト・プロパティに使用すべきではありません。 アプリケーションをクラッシュする可能性があります。
すべてのプロパティは、名前を持っています。加えて、値も持っています。
値は、プロパティの属性の1つです。
その他の属性:enumerable, configurable, および writable。
これらの属性は、プロパティにアクセスする方法を定義します(読込み可能?書き込み可能?)
JavaScript では、すべての属性を読むことができますが、value 属性のみを変更することができます(プロパティが書き込み可能な場合のみ)。
(ECMAScript 5 には、すべてのプロパティ属性を取得および設定するためのメソッドがあります。)
JavaScript オブジェクトは、プロトタイプのプロパティを継承します。
delete キーワードは、継承されたプロパティを削除しませんが、prototype プロパティを削除した場合、 プロトタイプから継承したすべてのオブジェクトに影響します。