この記事ではJavaScriptの「オブジェクト」と「連想配列」について、
- 「オブジェクト」と「連想配列」の違い
などを図を用いて分かりやすく説明するように心掛けています。ご参考になれば幸いです。
「オブジェクト」と「連想配列」の違い
結論から言うと、JavaScriptでは「連想配列」という用語は特に使いません。
しかし、以下のプログラムに示すように、個々のプロパティ名(以下のプログラムではname
やage
)が文字列値と関連付けられてアクセスできるため、JavaScriptのオブジェクトは連想配列と呼ばれることがあります。
let person = {
name: 'Taro',
age: 30
};
// プロパティ名を直接使用して値にアクセス
console.log(person.name); //ログ: Taro
console.log(person.age); //ログ: 30
// 個々のプロパティを文字列値と関連付けてアクセス
console.log(person['name']); //ログ: Taro
console.log(person['age']); //ログ: 30
一方、JavaScriptのオブジェクトでは、値に’Taro’
や30
などのデータだけでなく、メソッド(関数)も保持することができます。以下のプログラムでは、greet
がメソッドです。一方、連想配列はメソッドを保持することができません。
let person = {
name: 'Taro',
age: 30,
greet: function () {
console.log(`Hello, my name is ${this.name}`); //オブジェクトはメソッドを保持することができる!!
}
};
// プロパティ名を直接使用して値にアクセス
console.log(person.name); //ログ: Taro
console.log(person.age); //ログ: 30
// 個々のプロパティを文字列値と関連付けてアクセス
console.log(person['name']); //ログ: Taro
console.log(person['age']); //ログ: 30
つまり、オブジェクトと連想配列の主な違いは、オブジェクトがメソッドを保持できる点です。
加えて、JavaScriptのオブジェクトは、他のオブジェクトからプロパティやメソッドを継承する「プロトタイプ継承」をサポートしています。一方、連想配列は「プロトタイプ継承」をサポートしていません。
ポイント
JavaScriptでは「連想配列」という用語は特に使いません。なぜなら、JavaScriptにおけるオブジェクトは連想配列のように動作するだけでなく、それ以上の機能(メソッドやプロトタイム継承など)も持っているためです。
本記事のまとめ
この記事ではJavaScriptの「オブジェクト」と「連想配列」について、以下の内容を説明しました。
- 「オブジェクト」と「連想配列」の違い
お読み頂きありがとうございました。