https://dotinstall.com/questions/lg9geuk
本講座の上記の質問で、
結論から申し上げると、setDate()やsetHours()は実行するたびに、new Date()で作ったオブジェクトそのものを変更します。
このようにオブジェクトのメソッドは適用するたびに元のオブジェクトをどんどん変更していく、という特徴があるので意識しておきましょう(他の言語だと「破壊的メソッド」と呼びますね)。
と先生から回答がありますが、const d = new Date()
によって作られた定数dは「オブジェクト」と言えるのはなぜでしょうか。講座の中の「オブジェクト」の定義として、「 #11 オブジェクトを作ってみよう」で出てきました、
const point = {
x: 100,
y: 180,
};
のように、名前(キー)と値で成り立つプロパティが存在するものの認識ですのが、今回のconst d = new Date()
のd
はそのような構造になっていない認識です。d
のコンソールのログの表示では、#11でのオブジェクトのように名前(キー)と値で成り立つプロパティ形式とは構造が違うように見受けられます(添付資料1参照)。
また、
このようにオブジェクトのメソッドは適用するたびに元のオブジェクトをどんどん変更していく
とありますが、本ページの質問のご回答では配列のpush()
等を例に回答しており、また、「(配列もオブジェクトなので)」との記載から、配列とオブジェクトは同じデータ型とおっしゃっているように見受けられますが、「#15 変数を代入してみよう」では、配列とオブジェクトを分けて説明されています。配列もオブジェクトであると言える理由をご教授お願いいたします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?