JavaScriptのオブジェクトは、Javaのオブジェクトとは異なる。
どちらかというとJavaのHashMapクラスに近いのがJavaScriptのオブジェクトである。
オブジェクトの記述方法は以下のとおりである。
//{プロパティ名1:値1, プロパティ名2:値2, ...}; var obj = {sample1:100, sample2:200};
これは名前が「sample1」のプロパティには値100が格納されており、名前が「sample2」のプロパティには値200が格納されているということである。
こうしてオブジェクトを設定することで、必要に応じてオブジェクトから値を取り出すことができるようになる。
オブジェクトから値を取り出す方法は二つある。
一つ目はドット演算子を用いる方法である。
var obj = {sample1:100, sample2:200}; //変数名.プロパティ名 alert(obj.sample1);
変数名.プロパティ名と記述することで、そのプロパティに格納されている値を得ることができる。
ただこのドット演算子を用いる方法は、プロパティ名が識別子としての規則を守っている必要がある。プロパティ名に文字列を使用した場合で、その文字列が識別子の規則に沿っていない場合、エラーになる。
以下は例である。
var obj = {'100property':100, 'property 200':80}; alert(obj.100property);
しかし以上のような場合でも、二つ目の方法を用いれば、値を得ることができる。
オブジェクトを連想配列としてみなす。連想配列形式の方法である。JavaのHashMapクラスに近い方法である。
var obj = {'100property':100, 'property 200':80}; //変数名["プロパティ名"] obj["100property"]
変数名[“プロパティ名”]と記述することで、格納されている値を得ることができるようになる。
この方法のメリットは先述したように、プロパティ名が識別子の規則に則っていなくても値を得ることができること。
もう一つは、配列演算子[]の中に記述するプロパティ名は文字列として指定しますので、文字列が代入された変数を代わりに指定することができることである。
これを用いると以下のような処理ができる。
var obj = {"100num":100, "200num":200, "300num":300}; for (var i = 100; i <= 300 ; i + 100){ var nums = i + "num"; alert(obj[nums]); }
出典:https://www.ajaxtower.jp/js/object/