第8章 オブジェクト

オブジェクトの基本

JavaScriptのオブジェクトはキーと値のペアの集合です。キーは文字列またはシンボルで、値は任意のデータ型です。

let person = {
    name: "太郎",
    age: 30,
    isStudent: false
};

// オブジェクトの値のアクセス
console.log(person.name); // 出力: 太郎


プロパティの追加、編集、削除

let person = {
    name: "太郎"
};

// プロパティの追加
person.age = 30;

// プロパティの編集
person.name = "次郎";

// プロパティの削除
delete person.age;


メソッド (オブジェクト内の関数)

let person = {
    name: "太郎",
    greet: function() {
        console.log("こんにちは、" + this.name + "です!");
    }
};

person.greet(); // 出力: こんにちは、太郎です!


オブジェクトの内部メソッド (thisキーワード)

thisはメソッドが属しているオブジェクトを参照します。

let person = {
    name: "太郎",
    greet: function() {
        // ここでのthisはpersonオブジェクトを指します
        console.log("こんにちは、" + this.name + "です!");
    }
};


オブジェクトのイテレーション

オブジェクトの各プロパティに対して繰り返し処理を実行できます。

let person = {
    name: "太郎",
    age: 30,
    isStudent: false
};

for (let key in person) {
    console.log(key + ": " + person[key]);
}


プロトタイプと継承

オブジェクトは他のオブジェクトからプロパティやメソッドを継承できます。

function Person(name) {
    this.name = name;
}

Person.prototype.greet = function() {
    console.log("こんにちは、" + this.name + "です!");
};

let taro = new Person("太郎");
taro.greet(); // 出力: こんにちは、太郎です!


オブジェクトと参照

オブジェクトは参照型です。

let personA = {
    name: "太郎"
};

let personB = personA;

personB.name = "次郎";

console.log(personA.name); // 出力: 次郎

ここでは、personBを変更すると、参照元のpersonAも変更されることを示しています。



練習問題1.

次の情報を持つオブジェクトを作成してください。

名前: "田中"

年齢: 28

趣味: "読書"

完成したオブジェクトをコンソールに出力してください。

期待される出力

{ name: "田中", age: 28, hobby: "読書" }


練習問題2.

次のオブジェクトが与えられます。

let student = {
    name: "佐藤",
    grade: 3
};

このstudentオブジェクトに、学年をコンソールに表示するメソッドshowGradeを追加してください。メソッドを実行した際の出力は「私は3年生です」となるようにします。

期待される出力

私は3年生です


練習問題3.

次のオブジェクトが与えられます。

let car = {
    brand: "Toyota",
    color: "red",
    year: 2020
};

colorのプロパティの値を"blue"に変更してください。

yearのプロパティを削除してください。

変更後のcarオブジェクトをコンソールに出力してください。

期待される出力

{ brand: "Toyota", color: "blue" }