JavaScriptのオブジェクトを作成する方法(リテラル表記とObjectコンストラクタ)
生徒
「JavaScriptで、自分の名前や年齢などの情報をまとめて管理するにはどうすればいいですか?」
先生
「それならオブジェクトを使うのが便利です。情報を名前とセットで整理できますよ。」
生徒
「オブジェクトって、どうやって作るんですか?方法がいろいろあると聞いたことがあります。」
先生
「はい、JavaScriptでは主に2つの方法でオブジェクトを作成できます。ひとつはリテラル表記、もうひとつはObjectコンストラクタという方法です。ひとつずつ説明していきましょう!」
1. JavaScriptのオブジェクト作成とは?
JavaScriptのオブジェクト(Object)は、名前(キー)と値(バリュー)のペアをまとめて扱える便利な仕組みです。例えば、名前や年齢、住所などをひとまとめにできます。
情報を分類して整理する「引き出し」のようなもので、それぞれの引き出しにラベル(キー)が貼ってあり、中身(値)をすぐに取り出せるようなイメージです。
2. リテラル表記によるオブジェクトの作成
リテラル表記は、{ }を使ってオブジェクトを直接定義する方法です。シンプルで読みやすく、最もよく使われています。
const user = {
name: "山田太郎",
age: 30,
city: "大阪"
};
この例では、userというオブジェクトの中に、name(名前)、age(年齢)、city(都市)が入っています。どれもラベル(キー)とその中身(値)のセットです。
3. 値の取り出し方
オブジェクトの中の情報は、キーを使って取り出します。次のように書きます。
・ドット記法
console.log(user.name); // "山田太郎"
・ブラケット記法
console.log(user["city"]); // "大阪"
ブラケット記法は、キーの名前を文字列として書きます。変数を使うときにも便利です。
4. Objectコンストラクタでの作成方法
Objectコンストラクタは、new Object()を使ってオブジェクトを作る方法です。より動的にオブジェクトを作成したいときに使われます。
const user2 = new Object();
user2.name = "佐藤花子";
user2.age = 28;
user2.city = "東京";
new Object()で空のオブジェクトを作成し、そのあとでプロパティ(情報)をひとつずつ追加していく形になります。
5. リテラル表記とObjectコンストラクタの違い
どちらもオブジェクトを作るための方法ですが、書き方や用途に違いがあります。
- リテラル表記:短く書けて、わかりやすい。静的なオブジェクトに向いている。
- Objectコンストラクタ:あとからプロパティを追加しやすく、動的な処理に向いている。
基本的にはリテラル表記を使うのが主流ですが、目的によって使い分けると便利です。
6. オブジェクトの初期状態を空にして作る
必要な情報をあとから追加したいときは、空のオブジェクトからスタートすることもできます。
・リテラル表記で空オブジェクトを作成
const emptyObject = {};
emptyObject.title = "初心者ガイド";
・Objectコンストラクタで空オブジェクトを作成
const anotherEmpty = new Object();
anotherEmpty.title = "オブジェクト学習";
どちらの方法でも、あとから自由にプロパティを追加できます。
7. オブジェクトを使うと何が便利なの?
たとえば、ユーザーの情報、商品の詳細、天気のデータなど、名前ごとにデータを分類したいときにとても役立ちます。
以下のように、わかりやすくデータを整理できるのがオブジェクトの魅力です。
const book = {
title: "JavaScript入門",
author: "中村一郎",
pages: 300
};
このようにオブジェクトを活用すれば、データを「意味のあるかたまり」として扱えます。
まとめ
ここまでJavaScriptにおけるオブジェクトの作成方法について詳しく解説してきました。プログラムを書く上で、データを整理して管理することは非常に重要です。今回学んだ「リテラル表記」と「Objectコンストラクタ」は、どちらもオブジェクトを生成するための基本的な手法ですが、現場で開発を行う際にはその使い分けがポイントになります。
オブジェクトの基本構造をおさらい
JavaScriptのオブジェクトは、キー(名前)と値(データ)のペアを保持するデータ構造です。これをプロパティと呼びます。プロパティを適切に設定することで、単なる変数の羅列よりも直感的で構造的なコードを書くことができるようになります。
リテラル表記のメリットと書き方
リテラル表記は、波括弧 {} を使用して記述する方法です。この手法は非常にシンプルであり、宣言と同時に初期値を設定できるため、ソースコードの可読性が飛躍的に向上します。現代のフロントエンド開発(ReactやVue.jsなど)においても、特別な理由がない限りはこのリテラル表記が推奨されています。
const smartphone = {
brand: "Apple",
model: "iPhone 15",
storage: "256GB",
isAvailable: true
};
このように、複数の属性を持つ情報を一つの変数 smartphone として定義することで、データの関連性が一目でわかります。実行結果を確認すると、各プロパティにアクセスして値を取得できることがわかります。
Apple
iPhone 15
Objectコンストラクタの活用シーン
一方で、new Object() を用いるObjectコンストラクタは、明示的にオブジェクトのインスタンスを生成する手法です。リテラル表記に比べると記述量は増えますが、プログラムの実行過程で条件に応じてプロパティを動的に追加していきたい場合や、古いライブラリとの互換性を保つ必要がある場合などに利用されます。
const laptop = new Object();
laptop.maker = "DELL";
laptop.cpu = "Core i7";
laptop.ram = "16GB";
このように空のオブジェクトを生成した後に、ドット記法を用いて後から情報を継ぎ足していくことが可能です。どちらの方法を使っても、最終的に生成されるオブジェクトの型や挙動に大きな違いはありませんが、チーム開発や保守性の観点からは、記述が簡潔なリテラル表記を優先して使用するのが一般的です。
プロパティの操作と柔軟なデータ管理
オブジェクトを作成した後は、その中身を更新したり削除したりすることも自由自在です。既存のプロパティに新しい値を代入すれば上書きされ、新しいキーを指定すれば新しい項目が増えます。
const member = {
id: 101,
rank: "Gold"
};
// 値の更新
member.rank = "Platinum";
// 値の追加
member.point = 5000;
console.log(member);
実行結果は以下のようになります。
{ id: 101, rank: 'Platinum', point: 5000 }
JavaScriptでは、このように柔軟なデータ操作が可能です。特にJSON形式のデータを扱うAPI通信などでは、オブジェクトの知識が不可欠です。リテラル表記とコンストラクタ、それぞれの特徴を理解して、状況に応じた最適なコーディングを心がけましょう。
生徒
「先生、まとめまで読んでみて、リテラル表記とObjectコンストラクタの違いがかなりはっきりしてきました。基本的には const obj = {} って書くリテラル表記の方が楽だし、よく見かける気がします。」
先生
「その通りです!リテラル表記は記述がシンプルなので、タイプミスも減りますし、何よりパッと見て何が入っているオブジェクトなのかが分かりやすいのが最大のメリットですね。プログラミングでは、後から読む人が理解しやすいコードを書くのがとても大切なんですよ。」
生徒
「なるほど。じゃあ、Objectコンストラクタの方はどういう時に使うんですか?わざわざ new Object() って書くのは少し面倒に感じちゃいます。」
先生
「鋭いですね。最近のJavaScript開発では、直接 new Object() を使う機会は減っています。でも、JavaScriptの仕組みとして『すべてのオブジェクトの根源にはObjectという設計図がある』という概念を理解するためには重要なんです。また、自作のクラスを作るときなど、コンストラクタという考え方自体は頻繁に登場するので、仕組みとして知っておく必要があります。」
生徒
「仕組みの理解として重要なんですね。あと、ドット記法とブラケット記法も使い分けが大事だと学びました。変数を使って動的に中身を取り出したいときはブラケット記法を使えばいいんですよね?」
先生
「正解です!例えば、ユーザーが入力した値によって、どの情報を表示するか切り替えたいときなどは、user[variable] のように書けるブラケット記法が非常に強力です。逆に、決まった値を取り出すときはドット記法の方がスッキリ見えますね。」
生徒
「使い分けることで、より高度なプログラムが書けそうです。オブジェクトをマスターすれば、複雑なアプリのデータも整理して管理できるようになる気がしてきました。これからも練習を重ねて、自然に使いこなせるように頑張ります!」
先生
「その意気です!オブジェクトは配列と並んでJavaScriptの最重要トピックの一つです。実際に自分で色々なデータを作って、コンソールに表示させて遊んでみてください。それが一番の上達への近道ですよ!」