オブジェクトのプロパティ
JavaScriptのオブジェクトは、プロパティの集合体です。プロパティはキーと値の対です。プロパティの値には、1
や"string"
のようなプリミティブ型や関数、そして、オブジェクトも入れることができます。
js
constproduct = {name : "ミネラルウォーター",price : 100,getTaxIncludedPrice : function () {returnMath .floor (this.price * 1.1);},shomikigen : newDate ("2022-01-20"),};
js
constproduct = {name : "ミネラルウォーター",price : 100,getTaxIncludedPrice : function () {returnMath .floor (this.price * 1.1);},shomikigen : newDate ("2022-01-20"),};
上のgetTaxIncludedPrice
には関数が代入されていますが、この関数は「メソッド」と呼ばれます。メソッドとは、オブジェクトに関連づいた関数のことです。メソッドを定義するには、キーと関数の値に分けて書く方法だけでなく、メソッド定義のための短い構文を使うこともできます。
js
constobject = {// キーと値に分けて書いたメソッド定義printHello1 : function () {console .log ("Hello");},// 短い構文を用いたメソッド定義printHello2 () {console .log ("Hello");},};
js
constobject = {// キーと値に分けて書いたメソッド定義printHello1 : function () {console .log ("Hello");},// 短い構文を用いたメソッド定義printHello2 () {console .log ("Hello");},};
JavaやPHPでは、オブジェクトのフィールドとメソッドははっきり区別されます。一方、JavaScriptではその区別はきっちりしていません。Javaで言うところのメソッドとフィールドは、JavaScriptでは同じように扱われます。たとえば、メソッドにnull
を代入することで、フィールドに変えてしまうこともできます。
js
constcalculator = {sum (a ,b ) {returna +b ;},};calculator .sum (1, 1);calculator .sum = null;calculator .sum (1, 1); // ここではもうメソッドではないので、呼び出すとエラーになります
js
constcalculator = {sum (a ,b ) {returna +b ;},};calculator .sum (1, 1);calculator .sum = null;calculator .sum (1, 1); // ここではもうメソッドではないので、呼び出すとエラーになります