JavaScriptの「オブジェクト」完全理解!初心者が最短で基礎をマスターする方法
こんにちは、とまだです。
JavaScriptを学習していて、「オブジェクトとは?」「プロパティとメソッドの違いがわからない」と悩んでいませんか?
実は私も最初、オブジェクトの概念でつまずきました。プログラミングスクールで教えていた時も、受講生の約7割が「オブジェクトがよくわからない」と相談してきたんです。
でも大丈夫です。今回は、JavaScriptのオブジェクトを「本棚」に例えながら、誰でも理解できるように解説していきます。
JavaScriptのオブジェクトとは?本棚で理解する基本概念
JavaScriptのオブジェクトって、難しく感じますよね。
でも実は、家にある本棚と同じようなものなんです。
本棚を想像してみてください。
- 本棚には複数の本が入っています
- それぞれの本にはタイトルがあります
- 本を取り出したり、追加したりできます
JavaScriptのオブジェクトも同じです。
// 本棚をオブジェクトで表現
const bookshelf = {
title1: "JavaScript入門",
title2: "React実践ガイド",
title3: "Web開発の教科書"
};
ここで、bookshelfが本棚全体、title1などが本の位置(プロパティ名)、"JavaScript入門"などが実際の本(値)にあたります。
なぜオブジェクトが必要なのか
「変数があるのに、なぜオブジェクトが必要なの?」
そう思うかもしれません。
例えば、ユーザー情報を管理する場合を考えてみましょう。
オブジェクトを使わない場合:
let userName = "田中太郎";
let userAge = 25;
let userEmail = "tanaka@example.com";
let userAddress = "東京都渋谷区";
変数が4つもバラバラに...。これが10人分になったら、40個の変数を管理することになります。
オブジェクトを使う場合:
const user = {
name: "田中太郎",
age: 25,
email: "tanaka@example.com",
address: "東京都渋谷区"
};
スッキリまとまりました!関連する情報を1つにまとめられるのが、オブジェクトの最大のメリットです。
オブジェクトの作り方は2種類!初心者はリテラル記法から
オブジェクトを作る方法は主に2つあります。
1. オブジェクトリテラル(おすすめ)
const person = {
name: "山田花子",
age: 30
};
波括弧{}を使う方法です。シンプルで分かりやすいので、初心者はまずこれを覚えましょう。
2. new Object()を使う方法
const person = new Object();
person.name = "山田花子";
person.age = 30;
こちらは少し冗長ですが、動的にプロパティを追加していく時に便利です。
でも最初は、オブジェクトリテラルだけ覚えておけば十分です。
プロパティとメソッドの違いを3分で理解
オブジェクトには「プロパティ」と「メソッド」があります。
この違い、実はとってもシンプルです。
- プロパティ = データ(値)
- メソッド = 動作(関数)
車を例に見てみましょう。
const car = {
// プロパティ(データ)
color: "赤",
model: "プリウス",
year: 2023,
// メソッド(動作)
start: function() {
console.log("エンジンをかけました");
},
stop: function() {
console.log("エンジンを止めました");
}
};
colorやmodelは車の特徴を表すプロパティ。
start()やstop()は車ができることを表すメソッド。
日常生活に置き換えると分かりやすいですね。
プロパティへのアクセス方法:ドット記法とブラケット記法
オブジェクトのプロパティにアクセスする方法は2つあります。
ドット記法(基本はこれ)
const book = {
title: "JavaScriptの教科書",
author: "とまだ",
price: 2980
};
// プロパティを取得
console.log(book.title); // "JavaScriptの教科書"
console.log(book.author); // "とまだ"
// プロパティを変更
book.price = 3480;
console.log(book.price); // 3480
ピリオド(.)でつなぐだけ。直感的で分かりやすいですよね。
ブラケット記法(動的アクセスに便利)
const book = {
title: "JavaScriptの教科書",
"出版年": 2025, // スペースを含むプロパティ名
"1stEdition": true // 数字で始まるプロパティ名
};
// ブラケット記法でアクセス
console.log(book["title"]); // "JavaScriptの教科書"
console.log(book["出版年"]); // 2025
console.log(book["1stEdition"]); // true
// 変数を使った動的アクセス
const key = "title";
console.log(book[key]); // "JavaScriptの教科書"
プロパティ名にスペースや特殊文字が含まれる場合や、変数でプロパティ名を指定したい場合はブラケット記法を使います。
よくあるつまずきポイントと解決法
1. プロパティの追加・削除で混乱
オブジェクトは作成後も自由に変更できます。
const user = {
name: "佐藤"
};
// プロパティの追加
user.age = 28;
user.email = "sato@example.com";
console.log(user);
// { name: "佐藤", age: 28, email: "sato@example.com" }
// プロパティの削除
delete user.email;
console.log(user);
// { name: "佐藤", age: 28 }
最初は戸惑うかもしれませんが、「後から自由に編集できる」と覚えておけば大丈夫です。
2. thisの挙動がわからない
メソッド内のthisは、そのメソッドを持つオブジェクト自身を指します。
const person = {
name: "鈴木",
age: 35,
introduce: function() {
// thisはpersonオブジェクトを指す
console.log(`私は${this.name}、${this.age}歳です`);
}
};
person.introduce(); // "私は鈴木、35歳です"
thisは文脈によって変わりますが、まずは「メソッド内では自分自身のオブジェクト」と覚えておきましょう。
3. 配列とオブジェクトの違いがわからない
実は、配列もオブジェクトの一種なんです。
// 配列
const fruits = ["りんご", "みかん", "ぶどう"];
console.log(typeof fruits); // "object"
// オブジェクト
const fruitInfo = {
name: "りんご",
color: "赤",
price: 200
};
console.log(typeof fruitInfo); // "object"
違いは何でしょうか?
- 配列:順番が重要な同じ種類のデータの集まり
- オブジェクト:名前付きで管理したい関連データの集まり
使い分けのコツは、「順番が大事かどうか」で判断することです。
実践!簡単なTodoオブジェクトを作ってみよう
理論ばかりでは身につきません。実際に手を動かしてみましょう。
// Todoアイテムをオブジェクトで表現
const todoItem = {
id: 1,
title: "JavaScriptの勉強",
completed: false,
dueDate: "2025-12-31",
// 完了状態を切り替えるメソッド
toggle: function() {
this.completed = !this.completed;
console.log(this.completed ? "完了しました!" : "未完了に戻しました");
},
// 情報を表示するメソッド
display: function() {
const status = this.completed ? "✓" : "□";
console.log(`${status} ${this.title} (期限: ${this.dueDate})`);
}
};
// 使ってみる
todoItem.display(); // □ JavaScriptの勉強 (期限: 2025-12-31)
todoItem.toggle(); // 完了しました!
todoItem.display(); // ✓ JavaScriptの勉強 (期限: 2025-12-31)
このように、データ(プロパティ)と操作(メソッド)を1つにまとめることで、管理しやすくなります。
ネストしたオブジェクトも怖くない
オブジェクトの中にオブジェクトを入れることもできます。
const company = {
name: "テック株式会社",
address: {
prefecture: "東京都",
city: "渋谷区",
street: "道玄坂1-1-1"
},
employees: [
{ name: "田中", position: "エンジニア" },
{ name: "佐藤", position: "デザイナー" }
]
};
// アクセス方法
console.log(company.address.city); // "渋谷区"
console.log(company.employees[0].name); // "田中"
階層が深くなっても、1つずつたどっていけば大丈夫です。
オブジェクトを使いこなすための3つのコツ
1. 小さく始める
最初から複雑なオブジェクトを作ろうとせず、シンプルなものから始めましょう。
// シンプルなオブジェクトから
const simple = {
name: "太郎",
age: 20
};
2. console.logで確認する習慣
オブジェクトの中身が分からなくなったら、すぐにconsole.log()で確認しましょう。
const obj = { a: 1, b: { c: 2 } };
console.log(obj); // 全体を確認
console.log(obj.b); // 一部を確認
3. MDNで調べる癖をつける
分からないメソッドやプロパティがあったら、MDN(Mozilla Developer Network)で調べる習慣をつけましょう。正確で分かりやすい情報が得られます。
まとめ:オブジェクトは「関連データをまとめる箱」
JavaScriptのオブジェクトは、最初は難しく感じるかもしれません。
でも、「関連するデータをまとめて管理する便利な箱」と考えれば、そんなに難しくないはずです。
今日学んだポイント:
- オブジェクトは
{}で作る - プロパティ(データ)とメソッド(動作)がある
- ドット記法でアクセスするのが基本
- 配列もオブジェクトの一種
- 実践あるのみ!
オブジェクトが理解できれば、JavaScriptの世界がグッと広がります。
もっと体系的に学びたい方は、Learning NextのJavaScriptコースもおすすめです。練習問題を解きながら、確実にオブジェクトをマスターできますよ。
さあ、今すぐブラウザの開発者ツールを開いて、最初のオブジェクトを作ってみましょう!
著者について

とまだ
フルスタックエンジニア
Learning Next の創設者。Ruby on Rails と React を中心に、プログラミング教育に情熱を注いでいます。初心者が楽しく学べる環境作りを目指しています。
著者の詳細を見る →