'〇〇' of Undefined
よく出くわすエラーなのですが、〇〇がundefinedで〇〇がおかしい!と私は早とちりしがちなので、
このエラーがどういう意味なのかということを残しておこうと思います。
マリオで見てみよう
こういうobjectがあるとします。
const mario = {
job: 'plumbing',
relationship: {
brother: 'Luige'
}
};
mario.hobby
だと、そんなプロパティはないので、undefined
になります。
ここまでは想像がつきますね。
cannot read property 'fire' of undefined
で、どんなふうに呼び出すとこのエラーがでるかというと、
mario.ability.fire
としたときです。
fire of undefined
なのでundefinedになっているfireではなく、
undefinedの中のfireというプロパティが読めないということですね。
marioの中のabilityというプロパティがなく、そこがundefinedになっているので、
undefinedの中のfireプロパティが読めないのです。
const mario = {
job: 'plumbing',
relationship: {
brother: 'Luige'
}
undefined: {
fire: 🔥
}
};
コードが複雑になってくると混乱してきますが、
こんなふうにシンプルに考えてみましょう。(と自分に言い聞かせている)