属性は、色、サイズ、重量などのオブジェクトの特性を表すために使用される変数であり、メソッドは、走る、呼吸する、ジャンプするなどのオブジェクトの動作を表すために使用される関数です。
JavaScript では、通常、オブジェクトのプロパティの値にアクセスするために「.」演算子が使用されます。または、[] を連想配列として使用して、オブジェクトのプロパティにアクセスします。
オブジェクトのプロパティとメソッドは、総称してオブジェクトのメンバーと呼ばれます。
オブジェクトのプロパティへのアクセス
JavaScript では、「.」と「[]」を使用してオブジェクトのプロパティにアクセスできます。
1. オブジェクトのプロパティにアクセスするには「.」を使用します
構文:
オブジェクト名.プロパティ名
このうち、objectName はオブジェクト名、propertyName はプロパティ名です。
2. 「[ ]」を使用してオブジェクトのプロパティにアクセスします
構文:
オブジェクト名[プロパティ名]
このうち、objectName はオブジェクト名、propertyName はプロパティ名です。
オブジェクトにアクセスするメソッド
JavaScript では、オブジェクトのメソッドにアクセスするために「.」のみを使用できます。
構文:
オブジェクト名.メソッド名()
このうち、objectNameはオブジェクト名、methodName()は関数名です。
[例 5-1] Person クラスを作成します:
function Person() { this.name=" 张三 "; // 定义一个属性 name this.sex=" 男 "; // 定义一个属性 sex this.age=22; // 定义一个属性 age this.say=function(){ // 定义一个方法 say() return "嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + ",今年 " + this.age +"岁!"; } } var zhangsan=new Person(); alert("姓名:"+zhangsan.name); // 使用“.”来访问对象属性 alert("性别:"+zhangsan.sex); alert("年龄:"+zhangsan["age"]); // 使用“[ ]”来访问对象属性 alert(zhangsan.say); // 使用“.”来访问对象方法
PS: オブジェクト アクセス プロパティの "." メソッドと "[]" メソッドの違いの簡単な分析
JavaScript では、通常、オブジェクトのプロパティの値にアクセスするために「.」演算子が使用されます。または、[] を連想配列として使用して、オブジェクトのプロパティにアクセスします。しかし、これら 2 つの方法の違いは何でしょうか?
たとえば、オブジェクトのプロパティ属性値を読み取ります:
オブジェクト.プロパティ
オブジェクト['プロパティ']
上記の 2 つの方法はどちらも属性アクセスを実現できます。
1. 文法の違い
ドット表記のオブジェクトの属性名は識別子ですが、後者の属性名は文字列です。
2. 柔軟性の違い
JavaScript プログラミングでは、オブジェクトに対して任意の数のプロパティを作成できます。ただし、「.」演算子を使用してオブジェクトのプロパティにアクセスする場合、プロパティ名は識別子で表されます。 JavaScript プログラムでは、識別子はデータ型ではないため、文字通りに入力する必要があるため、プログラムは識別子を操作できません。つまり、識別子は静的であり、プログラム内でハードコーディングする必要があります。
array[] 表記を使用してオブジェクトの属性にアクセスする場合、属性名は文字列で表されます。文字列は JavaScript データ型であるため、プログラムの実行中に操作および作成できます。
3. パフォーマンスの違い
Array[] 表記は、属性値にアクセスするときに式操作を実行します。ドット表現は属性値に直接アクセスするため、理論的には配列表現よりも実行効率が高くなります。パフォーマンスは実際には無視できます。
一部のシナリオでは、属性値に動的にアクセスするために配列表現を使用する必要がありますが、これはドット表現では実現できません。
一般に、これら 2 つの方法には大きな違いはなく、どちらにも対応する使用シナリオがあります。ドット表記は通常、プロパティにアクセスするための静的オブジェクトとして使用されます。配列表現は、属性に動的にアクセスする場合に非常に便利です。