計算機科学のブログ

オブジェクトと配列 Object.assign 継承、代入

入門JavaScriptプログラミング (JD Isaacks(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT2(オブジェクトと配列)、LESSON 10(Object.assign)、10.6(練習問題)、Q10-1の解答を求めてみる。

コード

// 車
let car = {
    drive: function () {
        console.log('ブーン');
    }
},
    patrolCar = Object.assign({}, car, {
        siren: "ウ〜"
    }),
    ambulance = Object.assign({}, car, {
        siren: "ピーポー",
        hose: function () {
            console.log('水');
        }
    }),
    cars = [car, patrolCar, ambulance];

cars.forEach(function (car) {
    console.log(car);
    car.drive();
    if (car.siren) {
        console.log(car.siren);
    }
    if (car.hose) {
        car.hose();
    }
});

入出力結果(Console)

% node sample1.js
{ drive: [Function: drive] }
ブーン
{ drive: [Function: drive], siren: 'ウ〜' }
ブーン
ウ〜
{ drive: [Function: drive], siren: 'ピーポー', hose: [Function: hose] }
ブーン
ピーポー
水
%