様々なデータをまとめて扱うことのできるデータ型を、オブジェクト(object)と呼びます。(データ型は他にも、数値型や文字列型、配列などが存在します。)
スポンサーリンク
オブジェクトの定義の方法は、主に以下の3つに分けられます。
1 オブジェクトリテラル
2 コンストラクタ関数
3 Object.createメソッド(ES2015(ES6))
本記事ではオブジェクトリテラルについて説明します。
オブジェクトリテラルは { } で括って下記のように定義します。keyがプロパティ名、valueがその値で、このペアをプロパティと呼びます。形式自体は、連想配列またはハッシュと同じです。
1 2 3 4 5 6 7 |
var オブジェクト名 = { key1:value1; //プロパティ名:値 ←プロパティ key2:value2; key3:value3; key4:value4; key5:value5; }; |
プロパティの値は下記のようにして取り出します。
1 |
オブジェクト名.プロパティ名 (ドット演算子) |
または
1 |
オブジェクト名['プロパティ名'] (ブラケット構文) |
例
1 2 3 4 5 6 7 |
var book = { title:'こころ', price:1000 }; console.log(book.title); //こころ console.log(book['price']); //1000 |
プロパティの値には、関数やオブジェクトを指定することが可能です。特にオブジェクト内の関数をメソッドと呼びます。つまり、オブジェクトはプロパティとメソッドにより構成され、このようなオブジェクトでコードを組んでいくことをオブジェクト指向と呼びます。
priceにオブジェクトを指定し、入れ子構造になっているのが分かります。
1 2 3 4 5 6 7 8 9 |
var book = { title:'こころ', price:{ new:1000, old:700 } }; console.log(book.price.old); //700 |
下記コードでは、4~6行目においてgetTitleメソッドを指定しています。
1 2 3 4 5 6 7 8 9 |
var book = { title:'こころ', price:1000, getTitle:function(){ console.log( this.title ); } }; book.getTitle(); //こころ |
値の更新や、プロパティの追加をすることも可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
var book = { title:'こころ', price:{ new:1000, old:700 } }; book.price.old = 600; //更新 book.author = '夏目漱石'; //追加 console.log(book.price.old); //600 console.log(book.author); //夏目漱石 |
関連ページ